编译GCC

来源:互联网 发布:绯夜传奇 知乎 编辑:程序博客网 时间:2024/06/05 10:40

尝试自己编译一个gcc。

首先查看官方说明,了解gcc的安装说明。点击打开链接Installing GCC

通过阅读官方说明,了解到gcc的安装步骤大致如下

1、下载源码: 

http://gcc.parentingamerica.com/releases/gcc-4.7.1/gcc-4.7.1.tar.gz     #gcc源码下载地址https://gmplib.org/download/gmp/gmp-6.0.0a.tar.bz2  #gmphttp://www.mpfr.org/mpfr-current/mpfr-3.1.2.tar.gz  #mpfrftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz #mpc

各依赖库直接的关系


根据依赖,我是先安装gmp。但是安装的时候发现没有m4的库。又去下载了一个m4,下载地址如下

http://ftp.gnu.org/gnu/m4/m4-1.4.1.tar.gz
tar xvf m4-1.4.1.tar.gzcd m4-1.4.1./configuremakemake install## 安装m4
tar xvf gmp-6.0.0a.tar.bz2 cd gmp-6.0.0  ./configure   make   make install## 安装gmp
tar xvf mpfr-3.1.2.tar.gzcd mpfr-3.1.2./configuremake make install## 安装mpfr
tar xvf mpc-1.0.3.tar.gzcd mpc-1.0.3./configuremake make install## 安装 mpc
tar xvf gcc-4.7.1.tar.gzmkdir gcc_build  cd gcc_build/  ../gcc-4.7.1/configuremake make install## 安装 gcc    创建构建目录是因为 gcc 的makefile没有clear   移植其它源码包时也可以使用这样的步骤

安装遇见的问题以及解决方法:

出现  configure: error: cannot compute suffix of object files: cannot compile  错误:

 export LD_LIBRARY_PATH=/usr/local/lib ## 当执行函数的动态链接库时,动态链接库不在缺省目录下  /lib    /usr/lib/ ## 那么就需要指定环境变量 LD_LIBRARY_PATH

出现  /usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory 错误:
export C_INCLUDE_PATH=/usr/include/i386-linux-gnu export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH## C_INCLUDE_PATH  (for C header files)  和 CPLUS_INCLUDE_PATH    (for C++ header files) 环境变量## 指明头文件的搜索路径,这两个环境变量指明的头文件会在-I指定路径之后,系统默认路径之前进行搜索
后面编译  这个错误又出现一次。
export OBJC_INCLUDE_PATH=$C_INCLUDE_PATH 
 ## We have set C_INCLUDE_PATH and CPLUS_INCLUDE_PATH, but still get this error? check carefully and it is building an obj-c file, i am building gcc for all language support (including c/c++/fotran/objc/go/java...), so, the only reason should be: the search path var is different for obj-c, by guess, i tried OBJC_INCLUDE_PATH and it works (as i do not have any experience on obj-c, i have to guess)!

出现 /usr/bin/ld: cannot find crti.o: No such file or directory错误:

 export LIBRARY_PATH=/usr/lib/i386-linux-gnu/ ## LIBRARY_PATH 指明库搜索路径,这个环境变量指明的路径会在-L指定路径之后,系统默认路径之前被搜索

出现 #error "Never use <bits/string.h> directly;include <string.h>"

vi /usr/include/i386-linux-gnu/bits/string.h注释 下列几行//#ifndef _STRING_H//# error "Never use <bits/string.h> directly; include <string.h> instead."//#endif







1 0
原创粉丝点击