在ubuntu上编译gcc会到的问题及解决方法
2012-02-06 10:59
351 查看
这段时间,我在用软件实现一个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,等等;
2. 到官网上下载代码放在 $HOME/src/gcc-4.7/files/中
3. 下载附件中的脚本,修改PKG_SNAPSHOT_VER和TARGET_SYSTEM_TYPE,然后直接运行即可。
4. 按脚本运行的提示完成最后的工作(比如建立符号链接啊什么的)
脚本如下:
View Code
参考资料:
http://stackoverflow.com/questions/4262531/trouble-building-gcc-4-6
http://gcc.gnu.org/wiki/InstallingGCC
http://askubuntu.com/questions/69365/cant-build-gcc-anymore-since-upgrade-to-11-10
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=644986
我是在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,等等;
2. 到官网上下载代码放在 $HOME/src/gcc-4.7/files/中
3. 下载附件中的脚本,修改PKG_SNAPSHOT_VER和TARGET_SYSTEM_TYPE,然后直接运行即可。
4. 按脚本运行的提示完成最后的工作(比如建立符号链接啊什么的)
脚本如下:
View Code
#!/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/${PKG_NAME}-${PKG_VER}" SRC_DIR="${BASE_DIR}/${PKG_NAME}-${PKG_SNAPSHOT_VER}" BUILD_DIR="${BASE_DIR}/gcc-build" DL_DIR="${BASE_DIR}/files" DL_FILE="${PKG_NAME}-${PKG_SNAPSHOT_VER}.tar.bz2" PATCHES_DIR="${BASE_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/${PKG_NAME}-${PKG_VER}" LIB_DIR="${PREFIX}/lib" LIB_EXEC_DIR="${PREFIX}/lib" BUILD_LOG_FILE="${BASE_DIR}/make.log" GCC_VER_FOR_BUILD="4.6" CC_FOR_BUILD="gcc-${GCC_VER_FOR_BUILD}" CXX_FOR_BUILD="g++-${GCC_VER_FOR_BUILD}" CPP_FOR_BUILD="cpp-${GCC_VER_FOR_BUILD}" export CC="${CC_FOR_BUILD}" CXX="${CXX_FOR_BUILD}" CPP="${CPP_FOR_BUILD}" echo "##### CC ... $CC" echo "##### CXX ... $CXX" echo "##### CPP ... $CPP" MULTIARCH_FLAGS="-B/usr/lib/${HOST_SYSTEM_MULTIARCH_TYPE} -I/usr/include/${HOST_SYSTEM_MULTIARCH_TYPE}" export CFLAGS="-g -O2" export CXXFLAGS="${CFLAGS}" export CFLAGS_FOR_TARGET="${CFLAGS} ${MULTIARCH_FLAGS}" export CXXFLAGS_FOR_TARGET="${CXXFLAGS} ${MULTIARCH_FLAGS}" ##LD_PRELOAD_FOR_BUILD="${PREFIX}/lib/libgcc_s.so.1" ##export LD_PRELOAD=${LD_PRELOAD_FOR_BUILD} MAKE_JOBS="3" echo "##### MAKE_JOBS ... ${MAKE_JOBS}" test -e ${BASE_DIR} || mkdir -p ${BASE_DIR} echo "##### Base directory ... ${BASE_DIR}" echo "##### Unpacking ${DL_FILE} ..." tar -xf ${DL_DIR}/${DL_FILE} -C ${BASE_DIR} echo "##### Finished unpacking." test -e ${BUILD_DIR} || mkdir -p ${BUILD_DIR} cd ${BUILD_DIR} echo "##### Build directory ... $PWD" # HELP: http://www.linuxfromscratch.org/lfs/view/development/chapter06/gcc.html # NOTE: apt-get install libgmp10-dev libmpfr-dev libmpc-dev echo "##### Configuring gcc-build ..." ../${PKG_NAME}-${PKG_SNAPSHOT_VER}/configure \ --prefix=${PREFIX} \ --libdir=${LIB_DIR} \ --libexecdir=${LIB_EXEC_DIR} \ --program-suffix=-${PKG_VER} \ --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=${BUILD_SYSTEM_TYPE} --host=${HOST_SYSTEM_TYPE} --target=${TARGET_SYSTEM_TYPE} echo "##### Finished configuring." echo "##### Compiling gcc-build ..." make FLAGS_FOR_TARGET="${FLAGS_FOR_TARGET} ${MULTIARCH_FLAGS}" -j${MAKE_JOBS} 2>&1 | tee ${BUILD_LOG_FILE} 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 ${PREFIX}/bin/${PKG_NAME}-${PKG_VER} /usr/bin/${PKG_NAME}-${PKG_VER}" echo "NOTE #3: Don't forget to add ${PREFIX}/lib' to /etc/ld.so.conf.d/${TARGET_SYSTEM_TYPE}.conf!" echo "EXAMPLE: sudo ldconfig -v"
参考资料:
http://stackoverflow.com/questions/4262531/trouble-building-gcc-4-6
http://gcc.gnu.org/wiki/InstallingGCC
http://askubuntu.com/questions/69365/cant-build-gcc-anymore-since-upgrade-to-11-10
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=644986
相关文章推荐
- ubuntu 12.04(gcc降级)编译android代码遇到"_FORTIFY_SOURCE"的解决方法
- 关于使用Makefile进行GCC编译报错问题解决方法
- ubuntu 13 编译hadoop 2.2.0源码出现问题及解决方法
- Ubuntu15.10上arm-linux-gcc4.3.2的安装、配置及问题解决方法
- Ubuntu Shell引发编译问题解决方法
- Ubuntu16.04+anaconda2+caffe+ssd+opencv3.1.0在编译caffe过程中的问题及解决方法 主要遇到三个问题,前两个是caffe在cmake过程中的问题,后一
- Ubuntu从9.10升级到14.10(64位)后编译Linux内核遇到的系列问题解决方法
- gcc编译常见问题解决方法
- 64位Ubuntu 11.10下编译android gcc版本过高问题解决
- ubuntu 12.04(gcc降级)编译android代码遇到"_FORTIFY_SOURCE"的解决方法
- Ubuntu 自己编译安装wireshark遇到的问题和解决方法
- 在MSYS下用MingW GCC编译libgmp的一个小问题及解决方法
- 64bits Ubuntu下编译Android的步骤,所遇到的问题和解决方法
- ubuntu 12.04(gcc降级)编译android代码遇到"_FORTIFY_SOURCE"的解决方法
- ubuntu 14.04 编译android4.0 出现gcc-version.sh: line 11: cc: command not found错误解决方法
- ubuntu 64bit “arm-linux-gcc: No such file or directory”问题的解决方法
- 记录编译GCC 5.2.0时遇到的问题和解决方法,以备日后查询。
- ubuntu-14.10下,安装gcc交叉编译器遇到问题及解决方法
- ubuntu 12.04(gcc降级)编译android代码遇到"_FORTIFY_SOURCE"的解决方法
- ubuntu 64bit “arm-linux-gcc: No such file or directory”问题的解决方法