【发布时间】:2015-01-26 16:27:28
【问题描述】:
我想用 Autotools 构建静态库和共享库。但是,这会导致双重编译,如in this question 所述。
有没有办法避免这种情况?我的第一个想法是即使在构建静态库时也启用 -fPIC 和 -DPIC。然而,这并没有奏效。
我知道 -fPIC 对于静态库来说不是最理想的,但我更关心的是构建时间而不是这个特定项目的运行时效率。
【问题讨论】:
我想用 Autotools 构建静态库和共享库。但是,这会导致双重编译,如in this question 所述。
有没有办法避免这种情况?我的第一个想法是即使在构建静态库时也启用 -fPIC 和 -DPIC。然而,这并没有奏效。
我知道 -fPIC 对于静态库来说不是最理想的,但我更关心的是构建时间而不是这个特定项目的运行时效率。
【问题讨论】:
根据https://gcc.gnu.org/bugzilla/show_bug.cgi?id=28811,有一个 g++/libstdc++ 错误阻止了 PIC 代码静态链接。也许这就是你看到的问题?它应该在 4.7 中修复。
除此之外,通常的方法是在开发过程中只进行一种样式(静态或共享)构建,然后在发布时只需花费额外的构建时间并生成两个单独的构建,一个带有 PIC,一个没有.
【讨论】: