【问题标题】:Environment variable to tell autotools to append libraries?环境变量告诉自动工具附加库?
【发布时间】:2013-10-08 17:28:05
【问题描述】:

Autotools 知道 target_LDFLAGStarget_LDADD。不同之处在于 LDADD 比 LDFLAGS 更晚添加到命令行,并且它是放置库的正确位置 (-lfoo)。 See also this question.

现在,我可以在运行./configure之前设置环境变量LDFLAGS,并且它被拾取。 LDADD 有类似的东西吗?我想做类似的事情:

export LDADD="-lfoo"
./configure
make

并在链接时让-lfoo 出现在所有目标文件之后。我尝试了上述方法,但没有奏效。 LDFLAGS 工作,但把图书馆放在错误的地方。我能做什么?

【问题讨论】:

  • 你试过./configure --help吗?它没有提到LDADD,但提到了LIBS

标签: ld autotools


【解决方案1】:

autoconf manual 建议应将这些"-lfoo" 选项添加到LIBS 变量中,如./configure --help 所述。

你可以有:AC_SUBST(target_LIBS, $LIBS)configure.acMakefile.am

target_LDADD = $(target_LIBS)

当然,如果可能的话,最好让配置脚本自动设置target_LIBS...

【讨论】:

  • 不要AC_SUBST配置脚本中的automake变量,这不是它们应该被使用的方式。
  • @DanielKO - target_LIBS 在此上下文中不是自动生成变量。这是将配置时值传递给 automake 的正确方法。
  • 是的,通过几个字符使用看起来像 automake 变量的变量是确实的方法。也用target_LDFLAG,活得更热情。
  • 我很困惑,你给了不好的建议。而且你没有幽默感。他问的是无论如何更改配置的调用,而不是编辑它。
猜你喜欢
  • 2012-01-19
  • 1970-01-01
  • 2021-03-05
  • 1970-01-01
  • 2019-11-19
  • 1970-01-01
  • 2011-01-14
  • 2021-04-22
  • 2019-09-04
相关资源
最近更新 更多