【问题标题】:How can I avoid a double compile when building static/shared libraries with autotools?使用自动工具构建静态/共享库时如何避免双重编译?
【发布时间】:2015-01-26 16:27:28
【问题描述】:

我想用 Autotools 构建静态库和共享库。但是,这会导致双重编译,如in this question 所述。

有没有办法避免这种情况?我的第一个想法是即使在构建静态库时也启用 -fPIC 和 -DPIC。然而,这并没有奏效。

我知道 -fPIC 对于静态库来说不是最理想的,但我更关心的是构建时间而不是这个特定项目的运行时效率。

【问题讨论】:

    标签: c++ autotools


    【解决方案1】:

    根据https://gcc.gnu.org/bugzilla/show_bug.cgi?id=28811,有一个 g++/libstdc++ 错误阻止了 PIC 代码静态链接。也许这就是你看到的问题?它应该在 4.7 中修复。

    除此之外,通常的方法是在开发过程中只进行一种样式(静态或共享)构建,然后在发布时只需花费额外的构建时间并生成两个单独的构建,一个带有 PIC,一个没有.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多