2017-08-15 26 views
1

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

回答

2

的問題是,noexcept不VS 2013支持 您需要定義BOOST_NO_CXX11_NOEXCEPT,然後包括<boost/config.hpp>,如記錄here

BOOST_NO_CXX11_NOEXCEPT : The compiler does not support noexcept .