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

发布于 2024-07-07 12:16:44 字数 213 浏览 10 评论 0原文

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

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

希望它构建/安装libtest.so

这可能吗?

I'm using autotools to build a shared object.

Using pkglib_LTLIBRARIES in my Makefile.am causes a libtest.la AND libtest.so to be built.

I only want it to build/install libtest.so.

Is this possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

在梵高的星空下 2024-07-14 12:16:44

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

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

我发现 关于 libtool 的 GNU 文档 有点不透明。 这是一个不那么不透明但有点过时的描述

The details of generating libraries varies widely from platform to platform. For example, on OS X, your library would be called libtest.dylib rather then libtest.so. libtool is part of the autotools suite, and its job is to abstract away all the messy platform dependent details. To do this, it creates a high-level, platform independent description of the library. This is is the libtest.la file you are seeing. libtools uses this platform independent description of the library to put together the final native library.

If you are using the autotools I don't think you are going to be able to avoid generating libtest.la. I suppose you could hack your local libtool shell script to remove it at completion, but you'd just have to generate it again the next time you ran make.

I found the GNU documentation on libtool somewhat opaque. Here is a less opaque but kind of dated description.

只怪假的太真实 2024-07-14 12:16:44

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

You can pass --disable-static as an option to configure.

桜花祭 2024-07-14 12:16:44

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

LT_INIT([disable-static])

请参阅 有关 LT_INIT 的文档

Another option would be setting this in configure.ac:

LT_INIT([disable-static])

See documentation on LT_INIT.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文