我正在使用 GNU autotools(包括 automake!)来管理我的项目。我想知道是否可以使用 libtool 来创建静态库和共享库?或者声明是分开的吗?这样做是否可行:
LT_INIT(shared static)
work?
我正在使用 GNU autotools(包括 automake!)来管理我的项目。我想知道是否可以使用 libtool 来创建静态库和共享库?或者声明是分开的吗?这样做是否可行:
LT_INIT(shared static)
work?
除了 LT_INIT
之外,不需要任何东西,它默认构建静态和共享库。如果您愿意,可以再次明确声明默认值(但这有点多余)
LT_INIT AC_ENABLE_SHARED AC_ENABLE_STATIC
编辑:手册中说 LT_INIT([shared])
和 LT_INIT([static])
(合并为 LT_INIT([shared static])
也可行)。此外,在给出 LT_INIT
时手册的更加精确的措辞是:
如果可用,此宏将启用共享库,并在不与共享库冲突的情况下启用静态库。
AC_DISABLE_STATIC
这样的选项,否则默认会同时构建静态库和动态库。例如,可以使用./configure --enable-static
来取消AC_DISABLE_STATIC
的影响。因此,configure.ac 中的内容实际上是开发人员对用户的建议。 - user502515