【问题标题】:Create both static and shared library with GNU libtool?使用 GNU libtool 创建静态库和共享库?
【发布时间】:2011-05-17 13:47:07
【问题描述】:

我正在为我的项目使用 GNU 自动工具(包括 automake!)。我想知道是否可以使用 libtool 创建静态库和共享库?或者声明是分开的?会这样吗:

LT_INIT(shared static)

工作?

【问题讨论】:

    标签: shared-libraries static-libraries autotools libtool


    【解决方案1】:

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

    LT_INIT
    AC_ENABLE_SHARED
    AC_ENABLE_STATIC

    编辑:手册说 LT_INIT([shared])LT_INIT([static]) (结合到 LT_INIT([shared static]) 也应该工作。当给出 LT_INIT 时,手册对默认值的更精确措辞: 这个宏打开共享库,如果它们是 可用,如果不可用,也启用静态库 与共享库冲突。

    【讨论】:

    • 那么当./configure && make运行时,会自动生成一个静态AND共享库?
    • 除非 configure.ac 显示 AC_DISABLE_STATIC,否则默认情况下会同时构建。例如,AC_DISABLE_STATIC 可以通过使用./configure --enable-static 来对抗。所以configure.ac 中的内容确实是开发人员对其用户的建议。
    • 感谢@user502515 提供的额外信息。我会记住这一点的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-17
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 2021-03-18
    • 1970-01-01
    相关资源
    最近更新 更多