gpt4 book ai didi

c++ - 混合 boost 库版本

转载 作者:行者123 更新时间:2023-11-30 01:47:44 31 4
gpt4 key购买 nike

我们有一个包含各种动态库的应用程序,它们都使用 Boost 1.48(静态)。由于第三方对 Boost Filesystem v2 的依赖,我们无法为应用程序切换到更新的 Boost 版本。

对于新功能,我们为应用程序开发了一个新的动态库,它也应该在其他一些项目中使用。我们可以为这个新库使用最近的(静态的?)Boost 库,而不干扰应用程序中已经使用的 Boost 库吗?

我应该避免什么陷阱?

最佳答案

Boost 库一般不支持混合不同版本的库。这样做是否会导致问题取决于许多因素,其中包括有问题的库、您的应用程序设计和目标平台。问题的来源之一可能是符号重定位,它是 Linux 和其他类 UNIX 系统上链接过程的一部分。即使你链接了 Boost 的静态库,链接的符号仍然可以从你的二进制文件中导出,并且在你加载你的应用程序时可能会发生冲突。这可能会导致各种未定义的行为,并且通常很难调试。

一般来说,我强烈反对在同一应用程序(即运行时进程)中混合使用不同版本的 Boost。

关于c++ - 混合 boost 库版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31207200/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com