0

我正在尝试在集群的一个节点上安装 gcc-4.6.2。不幸的是,这个节点没有互联网连接,所以我正在尝试手动完成所有操作。我已经安装了所有必需的软件包,并使用以下参数运行了配置文件:

./configure --with-newlib --prefix=/usr/lib64/gcc-4.6.2 --disable-libssp 
--enable-shared --enable-threads=posix --enable-__cxa_atexit 
--enable-clocale=gnu --enable-languages=c,c++,java 
--with-cpu=generic --build=x86_64-redhat-linux               
--host=x86_64-redhat-linux --target=x86_64-redhat-linux 
--with-target-subdir=x86_64-redhat-linux --with-mpfr=/usr/local/lib 
--with-gmp=/usr/local/lib --with-mpc=/usr/local/lib

但是,当我成功时,出现以下错误:

../.././libiberty/strsignal.c:555: error: conflicting types for ‘psignal’
/usr/include/signal.h:141: error: previous declaration of ‘psignal’ was here

有人可以帮助我吗?

4

1 回答 1

0

我发现您的配置调用存在三个潜在问题:

  • 您已指定--build--host--target,但它们都是相同的。尽管您实际上并没有从中获得交叉编译器,但这会将构建置于“让我成为交叉编译器”模式。这是不正常的事情,可能无法正常工作。尝试删除所有这三个选项。如果您正在构建的节点不是 x86_64-redhat-linux,并且您确实需要针对该目标的交叉编译器,请--target 指定.

  • 您已指定--with-newlib,但您的--target选择是x86_64-redhat-linux。最后我听说,newlib 不支持这个操作系统——它是一个用于嵌入式工作的最小 C 库。试着把它也拿出来。

  • 没有--with-target-subdir选择。这本身是无害的——配置忽略了无法识别的选项--with--enable选项——但我想知道它是什么的。您是否从某处复制了此配置调用?

有关进一步的建议,请参阅http://gcc.gnu.org/install/configure.html

(你真的有使用 Java 编译器吗?如果没有,禁用它,你的构建速度会快四倍。)

于 2013-04-16T14:30:46.953 回答