使用升压过程编译一个简单的应用程序生成错误
问题描述:
我正在使用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");
}
但我仍然得到同样的错误。我该如何解决这个问题?
答
的问题是,noexcept
不VS 2013支持 您需要定义BOOST_NO_CXX11_NOEXCEPT
,然后包括<boost/config.hpp>
,如记录here。
BOOST_NO_CXX11_NOEXCEPT
: The compiler does not supportnoexcept
.
您仍然需要包含''。 –
Jonas