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