【问题标题】:Makefile: Force project to use dynamic or static library at build timeMakefile:强制项目在构建时使用动态或静态库
【发布时间】:2012-03-13 17:03:31
【问题描述】:

我有一个简单的项目,它使用单个库来运行。

例如,我的程序名为“myApp”,我有一个我自己构建和编码的库,名为 libspoonybard。 libspoonybard 的 makefile 已设置为为此库生成共享对象 (.so) 和静态库 (.a) 文件。

-myApp
--libspoonybard

我将在构建时指定什么(通过命令行标志或生成文件),以便我可以将“myApp”构建为“静态”版本(即:强制使用 libspoonybard.a)和“动态” " 版本(在运行时强制使用 libspoonybard.so)。

我已经在 StackOverflow 上尝试了几次类似主题的搜索,但所有结果似乎都集中在如何创建静态库和动态库,而不是如何指定要链接的库。抱歉,如果这是转发。

提前感谢大家的帮助。

【问题讨论】:

    标签: c++ c linker makefile


    【解决方案1】:

    "-static" vs "-shared" 可以在GCC下使用:

    http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options

    【讨论】:

      【解决方案2】:

      您可以使用 -static 标志,直接指定 .so 或 .a 文件等。

      简短介绍: 3.2 Shared libraries and static libraries (Stallman/Gough)

      【讨论】:

        猜你喜欢
        • 2010-10-10
        • 2013-12-30
        • 1970-01-01
        • 2013-09-26
        • 2016-08-04
        • 1970-01-01
        • 2018-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多