默认情况下,libtool会创建两个版本的库 - 静态库和动态库,这就是我需要的。我还需要我的库,无论它是什么类型 - 静态或动态,都将静态链接到某些依赖项(几个.a档案 - lib1.a,lib2.a和lib3.a)。我在--whole-archive
中尝试了_LDFLAGS
选项,如下所示:
mylib_la_LDFLAGS=...-Wl,--whole-archive, -llib1 -llib2 -llib3 --no-whole-archive ....
但生成Makefile后,这些标志会在命令末尾移动,因此不会产生任何影响:
...-llib1 -llib2 -lib3.... -Wl,--whole-archive, --no-whole-arvhive,...
我还尝试在--static
中提供_LDADD
这样的标记:
mylib_la_LDFLAGS=...--static -llib1 -llib2 -llib3 ....
当libtool创建动态库(静态库很好)时,省略了这个标志。
如何实现这一目标?
答案 0 :(得分:0)
mylib_la_LIBADD=-llib1 -llib2 -llib3...
应该有效。将DSO链接到静态库可能不起作用,具体取决于静态库中的对象是如何构建的。