我正在尝试在我的RaspberryPi(Linux)上编译C ++文件,但它会抛出错误:
错误:'_NOEXCEPT'之前的预期初始值设定项 JSONException JSONException :: MissingKey(const std :: string& key)_NOEXCEPT ^ /root/libapiai_demo/libapiai/apiai/src/exceptions/JSONException.cpp:23:101:错误:'_NOEXCEPT'之前的预期初始值设定项 JSONException JSONException :: TypeMismatch(const std :: string& key,const std :: string& expected_type)_NOEXCEPT
我甚至尝试用throw()和_GLIBCXX_USE_NOEXCEPT替换它,但是没有用。
用noexcept替换它(小) 它抛出错误:
错误:声明'ai :: Exception :: Exception(const char *)noexcept'有>不同的异常说明符 Exception :: Exception(const char * reason)noexcept:reason(reason){
我的编译器是否有问题,但我使用的是最新版本。
我的CMake txt文件也有:
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
else()
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
add_compile_options(-std=c++11)
对于要编译的代码,仍然会抛出错误。
g ++ --version g ++(Raspbian 4.9.2-10)4.9.2
下面是抛出错误的1个这样的文件。
是否像4.9.2那样不支持noexcept。因为我被卡住了,有人可以帮助我。
#ifndef EXCEPTION_H
#define EXCEPTION_H
#include <string>
#include <exception>
namespace ai {
class Exception: public std::exception
{
private:
std::string reason;
public:
Exception(const char *reason) _NOEXCEPT;
virtual const char* what() const _NOEXCEPT override;
virtual ~Exception() _NOEXCEPT;
};
}
#endif // EXCEPTION_H