当前位置: 首页 > Linux

最佳实践-源码升级gcc

时间:2023-04-07 01:55:34 Linux

1。下载升级包所需的软件boost_1_60_0.tar.gzhttp://www.boost.org/users/history/version_1_60_0.htmlgcc-4.8.0.tar.gzhttp://ftp.gnu.org/gnu/gcc/gcc-4.8.0/必须是isl-0.11.1.tar.gzhttp://isl.gforge.inria.fr/必须是mpc-1.0.3.tar.gzhttp://ftp.heanet。ie/mirrors/gnu/mpc/必须是cloog-0.18.1.tar.gzftp://gcc.gnu.org/pub/gcc/infrastructure/必须是gmp-5.1.3.tar.gzhttp://ftp.yz.yamagata-u.ac.jp/pub/GNU/gmp/需要libelf-0.8.13.tar.gzhttp://www.mr511.de/software/english.html需要mpfr-3.1.3。tar.gzhttp://ftp.gnu.org/gnu/mpfr/必须2.安装相关软件gmptar-jxvfgmp-6.1.0.tar.bz2cdgmp-6.1.0./configure--prefix=/usr/local/gmpmake-j4&&makeinstall&&echo$?Mpfrtar-zxvfmpfr-3.1.3.tar.gzcdmpfr-3.1.3./configure--with-gmp-include=/usr/local/gmp/include\--with-gmp-lib=/usr/local/gmp/lib\--prefix=/usr/local/mpfrmake-j4&&makeinstall&&echo$?Mpctar-zxvfmpc-1.0.3.tar.gzcdmpc-1.0.3./configure--with-mpfr-include=/usr/local/mpfr/include\--with-mpfr-lib=/usr/local/mpfr/lib\--with-gmp-include=/usr/local/gmp/include\--with-gmp-lib=/usr/local/gmp/lib\--prefix=/usr/local/mpcmake-j4&&makeinstall&&echo$?isltar-zxvfisl-0.11.tar.gzcdisl-0.11./configure--with-gmp-prefix=/usr/local/gmp--prefix=/usr/local/islmake-j4&&makeinstall&&echo$?Cloogtar-zxvfcloog-0.18.0.tar.gzcdcloog-0.18.0./configure--with-gmp-前缀=/usr/local/gmp\--with-isl-prefix=/usr/local/isl\--prefix=/usr/local/cloogmake-j4&&makeinstall&&echo$?Gcctar-zxvfgcc-4.8.0.tar.gzcdgcc-4.8.0编译安装gcc需要指定各个依赖库的文件目录vi/etc/ld.so.conf/usr/local/isl/lib/usr/local/cloog/lib/usr/local/mpc/lib/usr/local/mpfr/lib/usr/local/gmp/lib退出后保存执行执行命令ldconfig./configure\--with-mpfr=/usr/local/mpfr\--with-gmp=/usr/local/gmp\--with-mpc=/usr/local/mpc\--with-mpfr-include=/usr/local/mpfr/include\--with-mpfr-lib=/usr/local/mpfr/lib\--with-gmp-lib=/usr/local/gmp/lib\--with-gmp-include=/usr/local/gmp/include\--with-mpc-lib=/usr/local/mpc/lib\--with-mpc-inclue=/usr/local/mpc/include\--with-isl-include=/usr/local/isl/include\--with-isl-lib=/usr/local/isl/lib/\--with-cloog-include=/usr/local/cloog/include\--with-cloog-lib=/usr/local/cloog/lib\--enable-languages=c,c++,objc,fortran,obj-c++,java\--enable-threads=posix\--disable-multilib\--with-pkgversion='SUSELinux'make-j4&&makeinstall&&echo$?3、验证gcc-v4、报错解决1)解压gcc安装包直接编译错误信息:configure:error:BuildingGCCrequiresGMP4.2+、MPFR2.4.0+和MPC0.8.0+。尝试将--with-gmp、--with-mpfr和/或--with-mpc选项添加到sspecifytheirlocation错误原因:编译安装gcc源代码,必须提前安装GMP4.2+、MPFR2.4.0+和MPC0.8.0+。如果在默认的头文件和库文件中检测不到上述安装包文件,则会报错解决方法:安装gmp、mpfr、mpc安装包,并指定其库文件路径,编译gcc。具体的版本和安装步骤可以参考上面的安装步骤。安装好gmp、mpfr、mpc后,执行如下编译脚本进行编译。/configure--with-mpfr=/usr/local/mpfr--with-gmp=/usr/local/gmp--with-mpc=/usr/local/mpc--with-mpfr-include=/usr/local/mpfr/include--with-mpfr-lib=/usr/local/mpfr/lib--with-gmp-lib=/usr/local/gmp/lib--with-gmp-include=/usr/local/gmp/include--with-mpc-lib=/usr/local/mpc/lib--with-mpc-inclue=/usr/local/mpc/include--enable-languages=c,c++--enable-threads=posix--disable-multilib2)编译mpc安装包报错错误信息:/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../lib64/libmpfr.a:无法读取符号:错误值collect2:ld返回1退出状态make[2]:***[libmpc.la]错误1??make[2]:离开目录`/tools/PXC/gcc/mpc-1.0.3/src'make[1]:***[all-recursive]Error1make[1]:Leavingdirectory`/tools/PXC/gcc/mpc-1.0.3'make:***[all]Error2错误原因:编译mpc源码时,没有指定gmp和mpfr对应的安装路径(主要是库文件和头文件路径)。解决方法:在编译脚本mpfr安装路径或库文件+头文件路径中添加对应的gmp、mpfr./configure--with-mpfr-include=/usr/local/mpfr/include--with-mpfr-lib=/usr/local/mpfr/lib--with-gmp-include=/usr/local/gmp/include--with-gmp-lib=/usr/local/gmp/lib--prefix=/usr/local/mpc或./configure--with-mpfr=/usr/local/mpfr--with-gmp=/usr/local/gmp--prefix=/usr/local/mpc3)与gmp,mpfr,mpc编译参数,编译gcc源码报错报错信息:conftest.c:10:25:error:isl/version.h:Nosuchfileordirectory报错原因:未安装isl安装包解决方法:安装isl-0.11。1.tar.gz,具体安装步骤参考以上内容4)源代码编译错误错误信息:./.libs/libisl.so:undefinedreferenceto`__gmp_get_memory_functions'collect2:ldreturned1exitstatusmake[2]:***[isl_cat]Error1./.libs/libisl.so:对`__gmp_get_memory_functions'的未定义引用collect2:ld返回1退出状态make[2]:***[isl_polyhedron_detect_equalities]Error1make[2]:Leavingdirectory`/tools/PXC/gcc/isl-0.12.2'make[1]:***[all-recursive]Error1make[1]:Leavingdirectory`/tools/PXC/gcc/isl-0.12.2'make:***[all]Error2错误原因:isl编译安装需要指定gmp的安装路径解决方法:在编译参数中指定gmp的安装路径,格式为--with-gmp-prefix==,不能使用--with-gmp./configure--with-gmp-prefix=/usr/local/gmp--prefix=/usr/local/isl参考文件:https://groups.google.com/forum/#!msg/isl-development/ejZLCmty4Nc/PrKXb9noTCoJ5)安装gmp、mpfr、mpc、isl后,源代码编译gcc错误报错信息:configure:6098:gcc-c-g-O2-DCLOOG_INT_GMP-I/usr/local/isl/include-I/usr/本地/gmp/include-I/usr/local/mpfr/include-I/usr/local/mpc/includeconftest.c>&5conftest.c:10:27:error:cloog/version.h:Nosuchfileordirectoryconftest.c:在函数'main':conftest.c:15:error:'choke'未声明在此函数中使用)conftest.c:15:错误:(每个未声明的标识符仅报告一次conftest.c:15:错误:对于它出现的每个函数。)conftest.c:15:错误:预期';'before'me'错误原因:安装包cloog丢失,没有找到对应的库文件解决方法:安装cloog-0.18.1.tar.gz,具体安装步骤参考上面的安装步骤,安装cloog后继续编译gcc./configure--with-mpfr=/usr/local/mpfr--with-gmp=/usr/local/gmp--with-mpc=/usr/local/mpc--with-mpfr-include=/usr/local/mpfr/include--with-mpfr-lib=/usr/local/mpfr/lib--with-gmp-lib=/usr/local/gmp/lib--with-gmp-include=/usr/local/gmp/include--with-mpc-lib=/usr/local/mpc/lib--with-mpc-inclue=/usr/local/mpc/include--with-isl-include=/usr/local/isl/include--with-isl-lib=/usr/local/isl/lib/--with-cloog-include=/usr/local/cloog/include--with-cloog-lib=/usr/local/cloog/lib--enable-languages=c,c++--enable-threads=posix--disable-multilib--disable-bootstrap--disable-libstdcxx-pch6)安装cloog遇到从属错误信息:./conftest:errorwhileloadingsharedlibraries:libisl.so.10:cannotopensharedobjectfile:Nosuchfileordirectoryerror原因:找不到isl的库文件。需要在/etc/ld.so.conf中添加以下内容/usr/local/isl/lib,并通过ldconfig使之生效。解决方法:通过LD_LIBRARY_PATH指定isl库文件路径或者在/etc/ld.so.conf中添加如下内容/usr/local/isl/lib,通过ldconfig使之生效。然后通过相应的编辑参数指定isl的库文件和头文件,编译安装cloog。使用字符串/etc/ld.so.cache|greplibisl查看库文件是否已经写入缓存。7)下级错误可以忽略错误信息01:conftest.cpp:11:2:error:#error-static-libstdc++notimplemented8)下级错误可以忽略错误信息:ldconfig:/usr/local/isl/lib/libisl.所以.10.1.0-gdb.py不是ELF文件-它的开头有错误的魔法字节。错误原因:/usr/local/isl/lib/libisl.so.10.1.0-gdb.py文件类型错误解决方法:rm/usr/local/isl/lib/libisl.so.10.1.0-gdb.py5,参考文档http://stackoverflow.com/questions/9450394/how-to-install-gcc-piece-by-piece-with-gmp-mpfr-mpc-elf-without-shared-librahttps://groups.google.com/forum/#!msg/isl-development/ejZLCmty4Nc/PrKXb9noTCoJ