使用升压过程编译一个简单的应用程序生成错误

使用升压过程编译一个简单的应用程序生成错误

问题描述:

我正在使用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 

我neeed添加任何其他的头文件,以便能够编译代码?

注:我知道可能代码不运行,因为在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"); 
} 

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

+0

您仍然需要包含''。 – Jonas

的问题是,noexcept不VS 2013支持 您需要定义BOOST_NO_CXX11_NOEXCEPT,然后包括<boost/config.hpp>,如记录here

BOOST_NO_CXX11_NOEXCEPT : The compiler does not support noexcept .