首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何、何时、何处设置libtool的脚本变量?(例如hardcode_minus_L)

如何、何时、何处设置libtool的脚本变量?(例如hardcode_minus_L)
EN

Stack Overflow用户
提问于 2017-07-24 13:33:32
回答 2查看 966关注 0票数 0

长话短说:我在相对rpath链接上使用了这个剧本 ( 使用 automake,autoconf,libtool)。问题是二进制可执行文件或rpath文件中的最终runpath条目仍然具有绝对路径:

  • 在默认情况下,libtool与等级库一起配置为包含任何-L值(如果它是在LDFLAGS中设置的)

唯一的问题是:如何以及在什么时候(正确的方式)设置其他libtool变量,比如hardcode_minus_L。(我在网上搜索过,但什么也找不到。)

我试着做以下几件事:

  • 调用配置之后,我试图在libtool文件中(在适当的目录中)用sed替换变量的值:它工作了,但是当make被调用时,它再次覆盖了整个libtool文件(它被重新生成)

请注意,两个二进制文件受此影响,输入为rpath/runpathobjdump -p

  • libcurl.soRUNPATH /home/user1/lib/rtorrent-0.9.7-1.5.3/lib:$ORIGIN/../lib
  • 急流RUNPATH $ORIGIN/../lib:/home/user1/lib/rtorrent-0.9.7-1.5.3/lib

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-16 14:26:22

事实证明,在configure.ac中修改这些变量相当容易,不需要sed --在修改和查看生成的脚本之后。唯一令人困惑的是,这些变量可以应用于给定项目中定义的tags

例如,要将hardcode_libdir_flag_spec更改为rtorrent项目中的空值(意味着它将中断编译),您可以插入到configure.ac

代码语言:javascript
复制
_LT_TAGVAR(hardcode_libdir_flag_spec, )=""
_LT_TAGVAR(hardcode_libdir_flag_spec, CXX)=""
_LT_TAGVAR(hardcode_minus_L, )=yes
_LT_TAGVAR(hardcode_minus_L, CXX)=yes

第二个参数是tagdefault标记(如果它是空的)。

票数 0
EN

Stack Overflow用户

发布于 2017-08-01 06:53:17

我不知道修改生成的libtool脚本是否是解决问题的最佳方法。但是,如果这样做,则需要在sed中执行AC_CONFIG_COMMANDS命令,从而使该方法更加健壮。

libtool脚本是在config.status期间作为配置命令(AC_CONFIG_COMMANDShttps://www.gnu.org/software/autoconf/manual/autoconf.html#Configuration-Commands)生成的。

代码语言:javascript
复制
config.status: executing libtool commands

您可以通过添加另一个AC_CONFIG_COMMANDS来修改这个生成的文件。我们使用以下方法修改prefer_static_libs变量:

代码语言:javascript
复制
AC_CONFIG_COMMANDS([libtool-fix-linker-preference],                                                                                                                      
    [${SED} -e '1,/prefer_static_libs=/ s/prefer_static_libs=.*$/prefer_static_libs=yes/' \
     libtool > libtool.fix && mv libtool.fix libtool])

您需要在AC_CONFIG_COMMANDS之后触发LT_INIT。配置/config.state报告执行情况:

代码语言:javascript
复制
config.status: executing libtool commands
config.status: executing libtool-fix-linker-preference commands

希望能帮上忙

克里斯蒂安

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45282061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档