【问题标题】:Prevent autotools from setting rpath when compiling my program编译我的程序时防止 autotools 设置 rpath
【发布时间】:2015-09-05 12:42:09
【问题描述】:

我正在开发一个示例 autotools 项目,该项目构建了一个共享库和一个程序。该程序应链接到共享库。但是当我构建程序时,libtool 会像这样设置rpath

RPATH=/usr/local/lib

我不想要的。

根据 Debian Wiki,当库位于默认搜索路径 (libtool's role) 中时,libtool 不应该设置 rpath

根据这个site/usr/local/lib应该在链接器的默认搜索路径中。

库和程序是由同一个autotools项目构建的,所以在构建程序时没有安装库。

有人知道为什么 libtool 会设置 rpath 吗?

【问题讨论】:

  • 基本上,您想知道如何覆盖 RPATH。我假设您会负责检测发行平台。

标签: c autotools libtool rpath


【解决方案1】:
  • 使用 readelf readelf -d libfftw3_mpi.so 你可以检查你的 lib 是否在动态部分包含这样的属性。

  • 使用 export LD_DEBUG=libs,您可以调试用于查找库的搜索路径

  • 使用 chrpath -r 可以更改 rpath

正如@bonoparte 在https://stackoverflow.com/a/33520976/4379130 中回答的那样

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    相关资源
    最近更新 更多