【问题标题】:binutils bfd links against system iberty instead of built ibertybinutils bfd 链接到系统 iberty 而不是内置 iberty
【发布时间】:2013-08-29 09:18:13
【问题描述】:

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

我看不到允许我覆盖它的配置参数。指示 configure 构造一个 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 似乎并不简单,因为.binutils/bfd

【问题讨论】:

    标签: makefile configure libtool binutils


    【解决方案1】:

    我查看了生成的 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-14
      • 2011-06-01
      • 1970-01-01
      • 2020-04-25
      相关资源
      最近更新 更多