在linux下通过编译安装gcc是一件比较麻烦的事情,中间遇到很多问题,总结如下:
1、首先是gcc的依赖问题,如果没有处理依赖就进行安装的话经常会遇到“Cannot find GMP version 4.1.3 or higher”,检查gmp的版本,明明是高于4.1.3的,可编译却怎么也过不了。通过网上查找,很多人说编译gcc时使用的依赖得是特定的版本才能通过,否则会经常出问题。下面列出的是我成功编译gcc-4.7.1所使用的依赖:cloog-0.16.2, mpc-0.8.1, mpfr-2.4.2, ppl-0.11, gmp-5.0.5。
2、安装过程中还可能会遇到“cannot compute suffix of object files”的问题,这是因为没有把依赖安装的路径加入,导致编译gcc时没有找到对应的lib。通过修改LD_LIBRARY_PATH变量中的值可以修复这个问题。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
安装后的路径可能在不同计算机上有差别,如果你找不到你的安装路径,可以重新运行安装依赖的命令,通过日志来查看它们的位置。
3、如果过程中遇到crti.o找不到的情况,可以
通过 find /usr/ -name crti.o来找到crit.o的位置,例如我的
找到的位置是/usr/lib/x86_64-linux-gnu/crti.o