在GCC_NO_EXECUTABLES ---交叉编译工具链之后不允许进行链接测试

azpvetkf  于 2023-03-18  发布在  其他
关注(0)|答案(3)|浏览(205)

我试图建立一个交叉编译器使用本教程:http://wiki.osdev.org/OS_Specific_Toolchain
在成功构建了binutils、all-gcc、newlib之后
我在build-gcc中make的最后一部分遇到错误

checking for shl_load... configure: error: Link tests are not allowed after GCC_NO_EXECUTABLES.
Makefile:8970: recipe for target `configure-target-libstdc++-v3' failed
make[1]: *** [configure-target-libstdc++-v3] Error 1
make[1]: Leaving directory `/usr/src/build-gcc'
Makefile:870: recipe for target `all' failed
make: *** [all] Error 2

请帮帮我...

js81xvg6

js81xvg61#

我不知道你配置了命令选项。但是如果你已经给出了**--enable-language=c**,请将其更改为**--enable-languages=c**。或者你可能正在使用语言c和c++编译 Bootstrap 。在这种情况下,会出现此错误。

szqfcxe2

szqfcxe22#

我在尝试为ARM构建一个交叉编译器时遇到了这个问题。最终,我改用crosstool-NG。这是一个大大简化了过程的脚本。它对我来说就像一个护身符。

dojqjjoe

dojqjjoe3#

我知道这是旧的,但对于其他人,我有一个警告和变通办法:

  • 警告:如果盲目地尝试从LFS指令构建本机工具链,或者乱用--with-sysroot,可能会导致OP错误 *

总是先检查你的./config.log,如果你看到一个类似“找不到stdio. h”的错误或者其他丢失的 *.h文件,很可能你的GCC不知道在哪里可以找到你的库/头文件。
OP可以通过使用“-B“和“-I“标志覆盖CC环境变量来强制它找到它们。
例如:

CC="${LFS_TGT}-gcc -B${LFS}/lib -I${LFS}/include" \
"../gcc-0.0.0/libstdc++-v3/configure"

相关问题