使用 boost 过程编译一个简单的应用程序会产生错误
Posted
技术标签:
【中文标题】使用 boost 过程编译一个简单的应用程序会产生错误【英文标题】:compiling a simple application using boost process generate error 【发布时间】:2017-08-15 09:05:56 【问题描述】:我正在使用 Boost 1.64 并使用 CMake 在 VS 2013 中生成了一个项目。代码如下:
#include <boost\process.hpp>
namespace bp = boost::process;
int main()
int result = bp::system("g++ main.cpp");
当我尝试调用它时,我收到此错误:
Error 1 error C3646: 'noexcept' : unknown override specifier C:\Local\boost\boost\process\detail\config.hpp
是否需要添加任何其他头文件才能编译代码?
注意:我知道代码可能没有运行,因为在 windows 上我没有 gcc,但这不是我的问题,我只是从 boost 文档中复制示例代码以确保我没有更改任何艺术。
编辑 1
我把代码改成这样:
#define BOOST_NO_CXX11_NOEXCEPT
#include <boost\process.hpp>
namespace bp = boost::process;
int main()
int result = bp::system("g++ main.cpp");
但我仍然遇到同样的错误。我该如何解决这个问题?
【问题讨论】:
您仍然需要包含<boost/config.hpp>
。
【参考方案1】:
问题是 VS 2013 不支持 noexcept
。
您需要定义BOOST_NO_CXX11_NOEXCEPT
,然后包含<boost/config.hpp>
,如文档中的here。
BOOST_NO_CXX11_NOEXCEPT
:编译器不支持noexcept
。
【讨论】:
以上是关于使用 boost 过程编译一个简单的应用程序会产生错误的主要内容,如果未能解决你的问题,请参考以下文章