在ubuntu上編譯gcc會到的問題及解決方法

2021-08-26 16:37:53 字數 3469 閱讀 6226

這段時間,我在用軟體實現乙個3d圖形庫,因為一些原因,想要使用c++11中的東西。被迫自己編譯gcc4.7. 在這個過程中傳到了很多的問題,經過不懈的努力終於是成功編譯出來了,現在記錄一下,算作個備份。

我是在ubuntu11.10上編譯的.會到了如下錯誤

1.configure錯誤,說沒有gmp,什麼的。

2.undefined reference to `lexer_line'

3. fatal error: bits/predefs.h :file or directory not found

4. ld can't find crti.o

相應的解決如下:

1. a

pt-get install libgmp10-dev libmpfr-dev libmpc-dev

2. apt-get install flex bison

3. 4. 在網上下了乙個編譯指令碼,直接執行就行了

下面是且這個指令碼編譯的過程:

1. 按照上面1和2安裝好gmp,等等;

4. 按指令碼執行的提示完成最後的工作(比如建立符號鏈結啊什麼的)

指令碼如下:

#!/bin/sh

# filename: build_gcc-snapshot.sh

# created: 15-mar-2011

# runas: user or root

# last changed: 09-oct-2011

export lang=c

export lc_all=c

pkg_name="gcc"

pkg_ver="4.7"

pkg_snapshot_ver="4.7-20120128"

base_dir="$home/src/$-$"

src_dir="$/$-$"

build_dir="$/gcc-build"

dl_dir="$/files"

dl_file="$-$.tar.bz2"

patches_dir="$/patches"

build_system_type=$(dpkg-architecture -qdeb_build_gnu_type)

host_system_type=$(dpkg-architecture -qdeb_host_gnu_type)

target_system_type="x86_64-linux-gnu"

host_system_multiarch_type=$(dpkg-architecture -qdeb_host_multiarch)

prefix="/opt/$-$"

lib_dir="$/lib"

lib_exec_dir="$/lib"

build_log_file="$/make.log"

gcc_ver_for_build="4.6"

cc_for_build="gcc-$"

cxx_for_build="g++-$"

cpp_for_build="cpp-$"

export cc="$" cxx="$" cpp="$"

echo "##### cc ... $cc"

echo "##### cxx ... $cxx"

echo "##### cpp ... $cpp"

multiarch_flags="-b/usr/lib/$ -i/usr/include/$"

export cflags="-g -o2"

export cxxflags="$"

export cflags_for_target="$ $"

export cxxflags_for_target="$ $"

##ld_preload_for_build="$/lib/libgcc_s.so.1"

##export ld_preload=$

make_jobs="3"

echo "##### make_jobs ... $"

test -e $ || mkdir -p $

echo "##### base directory ... $"

echo "##### unpacking $ ..."

tar -xf $/$ -c $

echo "##### finished unpacking."

test -e $ || mkdir -p $

cd $

echo "##### build directory ... $pwd"

# help:

# note: apt-get install libgmp10-dev libmpfr-dev libmpc-dev

echo "##### configuring gcc-build ..."

../$-$/configure \

--prefix=$ \

--libdir=$ \

--libexecdir=$ \

--program-suffix=-$ \

--enable-clocale=gnu \

--enable-languages=c,c++ \

--enable-shared \

--enable-threads=posix \

--disable-bootstrap \

--disable-libssp \

--disable-multilib \

--disable-nls \

--with-system-zlib \

--without-cloog \

--without-ppl \

--with-arch-32=i586 --with-tune=generic \

--build=$ --host=$ --target=$

echo "##### finished configuring."

echo "##### compiling gcc-build ..."

make flags_for_target="$ $" -j$ 2>&1 | tee $

echo "##### finished compiling."

echo "note #1: before installing your shiny new gcc run the gcc-testsuite to check your build is ok!"

echo "note #2: don't forget to generate symlinks in system's bin directory!"

echo "example: sudo ln -sf $/bin/$-$ /usr/bin/$-$"

echo "note #3: don't forget to add $/lib' to /etc/ld.so.conf.d/$.conf!"

echo "example: sudo ldconfig -v"

參考資料:

在ubuntu上編譯chrome

在ubuntu上編譯chrome 紅心地瓜 1.獲取 2 解壓縮 3 安裝dept tools 將dept tools加到path裡面 export path path pwd depot tools或者加到 bashrc裡面 2.安裝dependency 進到 chromium src目錄下 bu...

在ubuntu上編譯chrome

在ubuntu上編譯chrome 紅心地瓜 1.獲取 2 解壓縮 3 安裝dept tools 將dept tools加到path裡面 export path path pwd depot tools或者加到 bashrc裡面 2.安裝dependency 進到 chromium src目錄下 bu...

在Ubuntu上編譯安裝LLVM

cmake 編譯安裝 檔案鏈結 驗證後記 兩周前實驗室要求我配置乙個叫speedy.js的編譯器,配置這個編譯器需要先配置好llvm。根據這個編譯器作者的教程,亂七八糟配置了一通,踩過一些坑,碰過一些雷,浪費了很多時間。花了兩周時間,終於全套配置完成,因此想寫個教程,留點知識給以後的自己和需要的各位...