在使用autotools构建静态/共享库时,如何避免双重编译?

时间:2015-01-26 16:27:29

标签: c++ autotools

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

有没有办法避免这种情况?我的第一个就是在构建静态库时启用-fPIC和-DPIC。但是,这没有用。

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

1 个答案:

答案 0 :(得分:0)

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

除此之外,通常的方法是在开发期间只执行一种样式(静态或共享为方便)构建,然后当您执行发布时,只需花费额外的构建时间并生成两个单独的构建,一个使用PIC,一个不使用