使用升压过程中产生错误编译一个简单的应用程序(compiling a simple applicat

2019-09-30 16:39发布

我使用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添加任何其他的头文件,以便能够编译代码?

注:我知道,可能是代码不能运行,如在窗户我没有GCC,但是这不是我的问题,我只是复制样本代码的形式提升文档以确保我没有改变它的任何艺术。

编辑1

我的代码改成这样:

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

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

Answer 1:

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

BOOST_NO_CXX11_NOEXCEPT :编译器不支持noexcept



文章来源: compiling a simple application using boost process generate error