【问题标题】:GNU Automake - build dynamic libraries statically linked against its dependenciesGNU Automake - 构建静态链接到其依赖项的动态库
【发布时间】:2016-01-06 14:13:53
【问题描述】:

默认情况下,libtool 创建两个版本的库 - 静态一个和动态一个,这就是我需要的。我还需要我的库,无论它是什么类型 - 静态或动态,都将针对某些依赖项(几个 .a 档案 - lib1.a、lib2.a 和 lib3.a)静态链接。我在_LDFLAGS 中尝试了--whole-archive 选项,如下所示:

mylib_la_LDFLAGS=...-Wl,--whole-archive, -llib1 -llib2 -llib3 --no-whole-archive ....

但是在 Makefile 生成之后,这些标志在命令结束时被移动,因此没有任何效果:

...-llib1 -llib2 -lib3.... -Wl,--whole-archive, --no-whole-arvhive,...

我还尝试在_LDADD 中提供--static 标志,如下所示:

mylib_la_LDFLAGS=...--static -llib1 -llib2 -llib3 ....

libtool创建动态库时省略该标志(静态库也可以)。

应该如何做到这一点?

【问题讨论】:

    标签: c++ makefile gnu-make automake


    【解决方案1】:
    mylib_la_LIBADD=-llib1 -llib2 -llib3...
    

    应该可以。将 DSO 链接到静态库可能不起作用,具体取决于静态库中对象的构建方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-19
      • 2013-08-23
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 2015-07-20
      相关资源
      最近更新 更多