這段時間,我在用軟體實現乙個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。根據這個編譯器作者的教程,亂七八糟配置了一通,踩過一些坑,碰過一些雷,浪費了很多時間。花了兩周時間,終於全套配置完成,因此想寫個教程,留點知識給以後的自己和需要的各位...