共享对象与boost program_options静态链接;应用程序链接共享

时间:2018-01-15 13:31:40

标签: c++ boost static

我正在处理一个静态链接我们的boost依赖项的库,这样我们就不必担心与用户发生冲突了。

我们的图书馆静态链接

  • DATE_TIME
  • 系统
  • 螺纹
  • 正则表达式
  • 的文件系统
  • 计划选项

然后我们有一个可执行文件,它还需要program_options并动态链接它。

当我们运行excutable时,我们获得了双倍免费。

我们可以采取不将我们的代码与program_options相关联的解决方案,这实际上我们不需要,但我想知道为什么会发生这种情况以及如何防止它向前发展。

答案是"不要将您的图书馆与静态链接联系起来"?如果是这样,那么有什么样的策略可以确保我的提升和提升能够很好地结合在一起?如果答案是"有一些不应该是静态的增强库"那么有一个清单吗?

1 个答案:

答案 0 :(得分:0)

在构建增强版时,我可以使用GCC的-fvisibility=hidden解决双重免费问题。

有关更多信息,请参见: