交叉编译时gcc支持库失败

时间:2010-03-30 20:37:02

标签: gcc makefile cross-compiling configure

我正在尝试交叉编译gcc 4.4.3并且它是交叉库。我已经设置了交叉编译所需的所有环境变量(AS,CC,CXX,AR,RANLIB,STRIP),并且已经为很多其他东西使用了相同的设置,所有这些都运行良好。

现在gcc本身也编译没有问题,但支持库真的令我困惑。当使用make all all,除了编译好的libgcc之外,给我:
configure: error: C compiler cannot create executables

config.log中所有失败的地方是:
configure:2569: checking for C compiler default output file name
configure:2572: i686-pc-gnu-gcc -g -march=i686 -O2 -pipe -mtune=generic conftest.c >&5
/home/lnz/abs-hurd/cross/cross/libexec/gcc/i686-pc-gnu/4.4.3/cc1: error while loading shared libraries: libc.so.0.3: cannot open shared object file: No such file or directory

这里的问题似乎是cc1正在尝试加载用于目标的libc。 ldd确认此cc1不会尝试加载libc.so.0.3(链接到libc.so.6)。 lib目录中也没有缺少libc.so.0.3。 当尝试完全相同的命令configure命令行使用一切正常。

对此的帮助会很棒,我一直在看这几天没有任何进展。

2 个答案:

答案 0 :(得分:0)

你试过strace吗?你可能想要对它进行一些过滤:-),当然。

答案 1 :(得分:0)

当然,在我搜索了4天之后,我在谷歌发布后30分钟内发现了它--.-

我需要做的是将RPATH_ENVVAR设置为我的LD_LIBRARY_PATH,因为显然configure在交叉编译时使用目标库dir。