【发布时间】: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