0

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

现在 gcc 本身也可以毫无问题地编译,但支持库真的让我很困惑。当使用 make 所有这些时,除了编译好的 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。当尝试从命令行配置使用完全相同的命令时,一切正常。

这方面的帮助会很棒,我已经看了好几天了,没有任何进展。

4

2 回答 2

0

你试过 strace 了吗?当然,您可能希望对此进行一些过滤:-)。

于 2010-03-30T20:47:18.407 回答
0

当然,在我搜索 4 天后,我在这里发布 30 分钟后在谷歌中找到了它-.-

我必须做的是将 RPATH_ENVVAR 设置为我的 LD_LIBRARY_PATH 因为显然 configure 在交叉编译时使用目标库目录。

于 2010-03-30T22:35:36.883 回答