gpt4 book ai didi

c++ - 如何在不启用异常(exception)的情况下构建boost 1.70.0?

转载 作者:行者123 更新时间:2023-12-02 10:38:48 25 4
gpt4 key购买 nike

我已经升级到Boost 1.70.0,并使用bootstrap和b2构建了二进制文件,并将其插入到我们的代码库中,但是不幸的是,由于缺少一个函数,我收到了很多链接器错误:boost::throw_exception(class stdext: :except const&)。

我在源代码中发现了BOOST_EXCEPTION_DISABLE和BOOST_NO_EXCEPTIONS作为预处理程序测试,但是我不知道如何修改构建配置以确保链接器不会查找该符号。我试图在每个源文件的顶部定义这些符号中的每一个,但无济于事,所以我想象构建增强二进制文件会引入这种依赖性。

以前这不是问题,所以我怀疑以前的版本是通过狡猾的方式构建的,以禁止使用异常。但是,工作室中没有人能记住这一点。

最佳答案

我认为答案是使用自定义“b2”命令进行构建。例如,要在linux下毫无异常(exception)地构建数学库。显然,如果要在MSVC下进行构建,则需要使用MS样式的标志。
并非所有库都可以构建二进制文件,因此您也需要将它们添加到自己的构建中。另外,请记住,并非所有库都支持无异常。

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

看看建立了哪些库
./b2 --show-libraries

有关自定义构建问题的更多通用建议,请参见 here

关于c++ - 如何在不启用异常(exception)的情况下构建boost 1.70.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56043333/

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