3

我正在使用自动工具来构建共享对象。

pkglib_LTLIBRARIES在我的 Makefile.am 中使用会导致构建libtest.laAND 。libtest.so

希望它构建/安装libtest.so

这可能吗?

4

3 回答 3

3

生成库的细节因平台而异。例如,在 OS X 上,您的库将被称为 libtest.dylib 而不是 libtest.so。libtool 是 autotools 套件的一部分,它的工作是抽象出所有与平台相关的杂乱细节。为此,它创建了库的高级、独立于平台的描述。这是您看到的 libtest.la 文件。libtools 使用这个独立于平台的库描述来组合最终的本地库。

如果您使用的是自动工具,我认为您将无法避免生成 libtest.la。我想您可以破解您的本地 libtool shell 脚本以在完成时将其删除,但您只需要在下次运行 make 时再次生成它。

我发现libtool 上的 GNU 文档有些不透明。这是一个不太透明但有点过时的描述

于 2008-11-01T07:06:04.110 回答
3

您可以--disable-static作为选项传递给configure.

于 2009-09-06T07:43:40.793 回答
0

另一种选择是将其设置为configure.ac

LT_INIT([disable-static])

请参阅有关 LT_INIT 的文档

于 2017-11-14T15:05:25.190 回答