更新 Rad Studio 的 boost 库
我需要将 boost 库更新到版本 1_46,目前 Rad Studio XE/2010 有 1_39 版本。当我尝试覆盖 boost include 路径时,编译失败,并出现 Borland VCL 的各种错误。当我尝试在其他路径中添加新的 boost 库时,保留以前的版本,在构造 std::* 类时,它也会因编译条件错误而失败。 我需要仅在新的 boost 版本中提供的shared_memory_manager 支持。是否有其他方法可以升级 boost 库或使用可供相同进程使用的共享内存?
仅使用新的 boost 版本编译时出现编译错误:
[BCC32 错误] bad_weak_ptr.hpp(44): E2113 虚拟函数 'bad_weak_ptr::what() const throw()' 与基类 'std::exception' 冲突
[BCC32 错误] xlocale(953): E2228 错误或警告消息过多
I need to update boost libraries to version 1_46, currently Rad Studio XE/2010 have 1_39 version. When I try just to overwrite boost include path compile fails with various errors from Borland VCL. When i try to add new boost libs in other path keep previous version it also fails with compile condition errors when constructing std::* classes.
I need shared_memory_manager support that is available only in new boost versions. Is there any other ways to upgrade boost libraries or use shared memory that will be available to same processes?
Compilation errors when compiling with new boost version only:
[BCC32 Error] bad_weak_ptr.hpp(44): E2113 Virtual function 'bad_weak_ptr::what() const throw()' conflicts with base class 'std::exception'
[BCC32 Error] xlocale(953): E2228 Too many error or warning messages
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
boost 内部有数十个位置,用于检查编译器版本以确定是否需要某些解决方法。 (检查 __CODEGEARC__ 和 __BORLANDC__)您需要测试其中每一个并根据需要更新版本号。此外,config/compiler/codegear.hpp 文件中还设置了许多定义(通常为 BOOST_HAS_* 和 BOOST_NO_*),您还需要针对不同版本的编译器打开/关闭这些定义。
这是一个非常棘手且耗时的过程。
There are dozens of locations inside of boost which check the compiler version in order to determine whether or not certain workarounds are needed. (checking against both __CODEGEARC__ and __BORLANDC__) You need to test each of these and update the version number as appropriate. Also there are a number of defines set inside the config/compiler/codegear.hpp file (typically BOOST_HAS_* and BOOST_NO_*) which you also need to turn on/off for different versions of the compiler.
It is a very tricky and time consuming process.