【问题标题】:Tell autoconf that (only) one library must be statically linked告诉 autoconf (仅)一个库必须是静态链接的
【发布时间】:2013-03-06 10:34:51
【问题描述】:

我正在使用 automake 构建一个 c++ 程序。它使用了许多我想动态链接的库。

不过,我想静态链接一个库。我不是在构建这个库,我有一个我想使用的第三方提供的 .a 文件。

在 configure.ac 或 Makefile.am 中是否有一种简单的方法可以指定此库必须静态链接,而对所有其他库保持正常的动态链接行为不变?

【问题讨论】:

    标签: autotools


    【解决方案1】:

    静态或动态链接的决定是由用户而非维护者做出的决定,因此尝试在 autotool 元文件中做出该决定是没有意义的。 如果用户想静态链接,最可靠的做法是确保链接器搜索到的目录中不存在动态库。

    【讨论】:

      【解决方案2】:

      我找到了答案。

      它通过在 Makefile.am 中添加库路径来工作:

      programname_LDADD = /usr/lib/libneeded.a
      

      只有当路径完全是指定的路径时,这才有效。

      【讨论】:

      • 如果用户没有在/usr/lib 中安装库,这将非常失败。为什么还要费心使用automake
      猜你喜欢
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 2011-05-08
      • 2012-12-14
      • 2011-02-14
      • 2011-04-14
      • 1970-01-01
      • 2012-07-29
      相关资源
      最近更新 更多