使用boost进程编译一个简单的应用程序会产生错误

时间:2017-08-15 09:05:57

标签: c++ boost process

我正在使用Boost 1.64并使用CMake在VS 2013中生成了一个项目。代码如下:

mail()

当我尝试调用它时,我收到此错误:

#include <boost\process.hpp>
namespace bp = boost::process;
int main()
{
    int result = bp::system("g++ main.cpp");
}

我是否需要添加任何其他头文件才能编译代码?

注意:我知道可能代码没有运行,因为在Windows上我没有gcc,但这不是我的问题,我只是复制示例代码表单提升文档以确保我做了不改变任何艺术。

编辑1

我将代码更改为:

Error   1   error C3646: 'noexcept' : unknown override specifier    C:\Local\boost\boost\process\detail\config.hpp  

但我仍然遇到同样的错误。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

问题是VS 2013不支持noexcept。 您需要定义BOOST_NO_CXX11_NOEXCEPT,然后包含<boost/config.hpp>,如文档here所示。

  

BOOST_NO_CXX11_NOEXCEPT:编译器不支持noexcept