我正在使用yaml-cpp
库,默认情况下会生成与位置相关的静态库(libyaml-cpp.a
)。我自己的库编译成两个版本,静态和共享。由于我需要共享一个,我必须打开yaml-cpp
的PIC(这是容易的部分)。但是,现在我是否会在静态库中遭受性能损失?如果是的话,有多大?
基本上,我有三个选择:
yaml-cpp
两次,一旦位置依赖,一旦PIC,将适当的onces链接到我的共享和静态库
yaml-cpp
将被编译两次,但这不重要,我不会改变它(通常)yaml-cpp
编译为PIC,将其链接到我的共享(PIC)和静态(不是PIC)
yaml-cpp
编译为PIC,并将我的(共享和静态)编译为PIC
因此选项1似乎是最好的选项。我的摘要中有任何错误的假设吗?还是我错过了其他选择?
平台:amd64
答案 0 :(得分:0)
PIC的缺点是应用程序性能会适度下降(通常为5%到15%)