我正在尝试从源代码编译 gcc,因为我无法使用 yum、apt-get 等。我的步骤很简单:
-我在我的电脑中下载了源GCC(我尝试了gcc-4.8.4和gcc-5.3.0)并使用了:
./contrib/download_prerequisites
Run Code Online (Sandbox Code Playgroud)
- 之后,我使用 powerPC y Linux 将 gcc 源文件发送到我的系统。
mkdir objdir
cd objdir
../gcc-4.6.2/configure --prefix=/usr --enable-languages=c,c++,fortran,go
make
Run Code Online (Sandbox Code Playgroud)
我遇到了下一个错误:
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
Run Code Online (Sandbox Code Playgroud)
知道出了什么问题吗?
此致
一些建议:首先,编译(特别是出于学习目的)比 GCC更简单的东西,例如GNU make,如果您从未从源代码编译过 GNU 东西。
然后编译最近的GCC(所以 2016 年 1 月的 5.3) - 构建问题与 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