如何使用pkglib_LTLIBRARIES = test.la仅构建* .so

时间:2008-11-01 05:06:10

标签: shared-libraries autotools libtool

我正在使用autotools来构建共享对象。

在Makefile.am中使用pkglib_LTLIBRARIES会导致构建libtest.lalibtest.so

我只希望它能够构建/安装libtest.so

这可能吗?

3 个答案:

答案 0 :(得分:3)

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

如果您使用的是autotools,我认为您无法避免生成libtest.la。我想你可以破解你的本地libtool shell脚本在完成时删除它,但是你必须在下次运行make时再次生成它。

我发现GNU documentation on libtool有点不透明。这是less opaque but kind of dated description

答案 1 :(得分:3)

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

答案 2 :(得分:0)

另一种选择是在configure.ac中设置它:

LT_INIT([disable-static])

请参阅documentation on LT_INIT