使用GNU libtool创建静态库和共享库?

6

我正在使用 GNU autotools(包括 automake!)来管理我的项目。我想知道是否可以使用 libtool 来创建静态库和共享库?或者声明是分开的吗?这样做是否可行:

LT_INIT(shared static)

work?

1个回答

11

除了 LT_INIT 之外,不需要任何东西,它默认构建静态和共享库。如果您愿意,可以再次明确声明默认值(但这有点多余)

LT_INIT
AC_ENABLE_SHARED
AC_ENABLE_STATIC

编辑:手册中说 LT_INIT([shared])LT_INIT([static]) (合并为 LT_INIT([shared static]) 也可行)。此外,在给出 LT_INIT 时手册的更加精确的措辞是: 如果可用,此宏将启用共享库,并在不与共享库冲突的情况下启用静态库。


那么当运行 ./configure && make 时,会自动产生静态和共享库吗? - Mohit Deshpande
2
除非 configure.ac 中有 AC_DISABLE_STATIC 这样的选项,否则默认会同时构建静态库和动态库。例如,可以使用 ./configure --enable-static 来取消 AC_DISABLE_STATIC 的影响。因此,configure.ac 中的内容实际上是开发人员对用户的建议。 - user502515

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接