2016-01-11 153 views
2

我想从源码编译gcc,因为我不能使用yum,apt-get等等。我的步骤很简单:从源代码编译gcc(问题)

-I下载源GCC(我试过GCC-4.8.4和gcc-5.3.0)在我的电脑,我用:

./contrib/download_prerequisites 

- 后这个,我送这个我的gcc源文件到我的系统使用powerPC y Linux。

mkdir objdir 
    cd objdir 
    ../gcc-4.6.2/configure --prefix=/usr --enable-languages=c,c++,fortran,go 
    make 

我已经得到了一个错误:

In file included from ../../gcc-4.9.2/gcc/genmddeps.c:19:0: 
    ../../gcc-4.9.2/gcc/system.h:205:20: fatal error: cstring: No such file or directory 
    # include <cstring> 
       ^
    compilation terminated. 
    make[3]: *** [build/genmddeps.o] Error 1 
    make[3]: Leaving directory `/home/root/build/gcc' 
    make[2]: *** [all-stage1-gcc] Error 2 
    make[2]: Leaving directory `/home/root/build' 
    make[1]: *** [stage1-bubble] Error 2 
    make[1]: Leaving directory `/home/root/build' 
    make: *** [all] Error 2 

什么它是怎么了?你知道吗?

问候

+0

错字在你的问题' 4.6.2'或'4.9.2'? –

回答

2

几点建议:第一,编译(特别是用于学习目的)的东西简单比GCC,例如如果你从来没有从源代码编译GNU的东西。

然后编译最近 GCC(所以5.3一月2016) - 建设问题将与4.8相同,GCC 5是更好!您需要gcc & libc-dev & g++ & libstdc++-dev主机机(运行你未来的交叉编译器)。我不确定你的--prefix=/usr是个好主意。考虑也许--program-suffix=-mine选项(否则,你的系统的/usr/bin/gcc可能会被覆盖,你不希望发生的事情)

你可以保留默认--prefix=/usr/local以后适当/usr/local/bin/添加到您的PATH

+1

我第二次评论关于不使用'--prefix =/usr',当然,直到你经常做到这一点,你有信心你知道演习以及它是如何工作的。就我个人而言,我保留一个'/ opt/gcc'目录,并在版本命名的目录中安装不同的版本(例如'/ opt/gcc/v5.3.0',在那里你没有义务,甚至不一定建议使用' v')。我的PATH设置脚本会自动选择最新版本的目录 - 对于GCC和其他版本化的软件 - 所以我构建并安装一个新版本并最终自动使用它。 –