我需要将boost库更新到版本1_46,目前Rad Studio XE / 2010的版本为1_39。当我尝试只是覆盖boost包含路径编译失败时,Borland VCL会出现各种错误。当我尝试在其他路径中添加新的boost库时,保留以前的版本,在构造std :: *类时,它也会因编译条件错误而失败。 我需要shared_memory_manager支持,仅在新的boost版本中可用。有没有其他方法可以升级boost库或使用可用于相同进程的共享内存?
仅使用新的boost版本进行编译时出现编译错误:
[BCC32错误] bad_weak_ptr.hpp(44):E2113虚函数'bad_weak_ptr :: what()const throw()'与基类'std :: exception'冲突
[BCC32错误] xlocale(953):E2228错误或警告消息太多
答案 0 :(得分:2)
boost内部有许多位置检查编译器版本,以确定是否需要某些变通方法。 (检查__CODEGEARC__和__BORLANDC__)您需要测试其中的每一个并根据需要更新版本号。此外,config / compiler / codegear.hpp文件中还有许多定义集(通常为BOOST_HAS_ *和BOOST_NO_ *),您还需要为不同版本的编译器打开/关闭它们。
这是一个非常棘手且耗时的过程。