我如何在不启用例外的情况下构建Boost 1.70.0



我已经升级到提升1.70.0,并使用bootstrap和b2构建了二进制文件,然后将其插入我们的代码库中,但不幸的是,我遇到了很多有关没有的链接错误,缺少没有任何链接器错误一个函数:boost :: thf throw_exception(class stdext :: exception const&(。

我已经在源中发现了BOOST_EXCEPTION_DISABLE和BOOST_NO_EXCEPTIONS作为预处理器测试,但是我不知道如何修改构建配置以确保链接器不寻找此符号。我尝试在每个源文件的顶部定义每个符号,但无济于事,所以我想构建了引入此依赖性的增强二进制文件。

以前这不是问题,因此我怀疑先前的版本是以一种狡猾的方式构建的,以禁用例外使用。但是,工作室中没有人能回想起这一点。

我认为答案是使用自定义" b2"命令构建。例如,在Linux下构建数学库,毫无例外。显然,如果您在MSVC下建造,则需要使用MS型标志。
并非所有库都会建造二进制文件,因此您也需要将它们添加到自己的构建中。另外,裸照并非所有库都支持否。

./b2 cxxflags="-fno-exceptions -DBOOST_NO_EXCEPTIONS" --with-system

查看构建了哪些库

./b2 --show-libraries

有关自定义建筑问题的更多通用建议,请参见此处。

相关内容

最新更新