0

构建 binutils 时,bfd 组件无法链接,因为它链接的是 libiberty 的系统版本,而不是 binutuils/libiberty/lib64/libiberty.a 下的构建版本。

我看不到允许我覆盖它的配置参数。指示 configure 构造一个 LD_LIBRARY_PATH 的最佳方法是什么,该 LD_LIBRARY_PATH 更喜欢来自其构建的其他组件的库而不是系统版本?显然,它需要作为先决条件的系统库,所以我不能完全排除这条路径。

这是错误,由于系统版本没有正确编译。下面的版本binutils/libiberty/lib64是用-fPIC编译的,所以我需要告诉configure使用它。

/lib64/libiberty.a(cplus-dem.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC

.:/usr/lib64:/lib64.is指定似乎并不容易binutils/bfd

4

1 回答 1

0

我查看了生成的 automakefile 并且 LDFLAGS 仅指定了系统库:

LDFLAGS := -L/usr/lib64 -L/usr/lib

所以我将此指定为配置的参数。有点hacky,但看不到更好的出路:

LDFLAGS="-L./ -L../ -L../libiberty/pic -L/usr/lib64 -L/usr/lib" ./confgiure --enable-shared
于 2013-08-29T14:36:49.560 回答