从源代码编译gcc时如何解决“cstring:没有这样的文件或目录”?

man*_*nez 5 linux gcc

我正在尝试从源代码编译 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)

知道出了什么问题吗?

此致

Bas*_*tch 2

一些建议:首先,编译(特别是出于学习目的)比 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