【发布时间】:2011-05-17 13:47:07
【问题描述】:
我正在为我的项目使用 GNU 自动工具(包括 automake!)。我想知道是否可以使用 libtool 创建静态库和共享库?或者声明是分开的?会这样吗:
LT_INIT(shared static)
工作?
【问题讨论】:
标签: shared-libraries static-libraries autotools libtool
我正在为我的项目使用 GNU 自动工具(包括 automake!)。我想知道是否可以使用 libtool 创建静态库和共享库?或者声明是分开的?会这样吗:
LT_INIT(shared static)
工作?
【问题讨论】:
标签: shared-libraries static-libraries autotools libtool
除了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,否则默认情况下会同时构建。例如,AC_DISABLE_STATIC 可以通过使用./configure --enable-static 来对抗。所以configure.ac 中的内容确实是开发人员对其用户的建议。