有关 Javascript 引擎错误的问题
Questions regarding Javascript Engine error
我有一个关于Javascript引擎错误的问题。这可能是一个非常具体的问题,以前有人看到过这个错误吗?你能帮忙看看吗?
以下是错误消息:
483e709e1e8:buildDirARNJavaScriptEngine mac$ make install
Scanning dependencies of target JavaScriptEngine
[ 8%] Building CXX object JavaScriptEngineImpl/src/CMakeFiles/JavaScriptEngine.dir/JavaScriptEngineImpl.cpp.o
[ 16%] Building CXX object JavaScriptEngineImpl/src/CMakeFiles/JavaScriptEngine.dir/JavaScriptEngineImplDuktape.cpp.o
/Users/mac/Documents/WorkSpace/JavaScriptEngine/JavaScriptEngineImpl/src/JavaScriptEngineImplDuktape.cpp:130:13: error: '~DuktapeStackVerification' has
a non-throwing exception specification but can still throw [-Werror,-Wexceptions]
throw utils::Exception(errorMsg);
^
/Users/mac/Documents/WorkSpace/JavaScriptEngine/JavaScriptEngineImpl/src/JavaScriptEngineImplDuktape.cpp:123:6: note: destructor has a implicit
non-throwing exception specification
~DuktapeStackVerification() {
^
1 error generated.
make[2]: *** [JavaScriptEngineImpl/src/CMakeFiles/JavaScriptEngine.dir/JavaScriptEngineImplDuktape.cpp.o] Error 1
make[1]: *** [JavaScriptEngineImpl/src/CMakeFiles/JavaScriptEngine.dir/all] Error 2
make: *** [all] Error 2
以下是我构建的内容/方式:
a483e709e1e8:buildDirJavaScriptEngine mac$ cmake ../JavaScriptEngine/ -DWITH_DUKTAPE=ON -DWITH_V8=ON
Creating the build directory for the JavaScriptEngineLibrary with build type: DEBUG
CMAKE_INSTALL_PREFIXis=====/Users/mac/Documents/WorkSpace/buildDirJavaScriptEngine/../Artifacts
====> Exporting Target Tuple using /Users/mac/Documents/WorkSpace/JavaScriptEngine/../BuildCommons/cmake/config.guess
====> Target Tuple is x86_64-apple-darwin18.7.0
Dependencies SHARED +++++ /Users/mac/Documents/WorkSpace/Artifacts/lib/libLogger.dylib;-Wl,-rpath,/Users/mac/Documents/WorkSpace/buildDirJavaScriptEngine/../Artifacts/lib
Dependencies SHARED +++++ /Users/mac/Documents/WorkSpace/Artifacts/lib/libException.dylib;-Wl,-rpath,/Users/mac/Documents/WorkSpace/buildDirJavaScriptEngine/../Artifacts/lib
Dependencies SHARED +++++ /Users/mac/Documents/WorkSpace/Artifacts/lib/libJsonContainer.dylib;-Wl,-rpath,/Users/mac/Documents/WorkSpace/buildDirJavaScriptEngine/../Artifacts/lib
Dependencies +++++ /Users/mac/Documents/WorkSpace/buildDirJavaScriptEngine/../Artifacts/include;/Users/mac/Documents/WorkSpace/buildDirJavaScriptEngine/../Artifacts/include/v8
Dependencies SHARED +++++ /Users/mac/Documents/WorkSpace/Artifacts/lib/libDuktape.dylib;-Wl,-rpath,/Users/mac/Documents/WorkSpace/buildDirJavaScriptEngine/../Artifacts/lib
Dependencies STATIC +++++ /Users/mac/Documents/WorkSpace/Artifacts/lib/libv8_monolith.a
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/mac/Documents/WorkSpace/buildDirJavaScriptEngine
这段源代码在抱怨:
~DuktapeStackVerification() {
m_endStackIndex = duk_get_top_index(m_ctx);
if (m_beginStackIndex != m_endStackIndex) {
std::string errorMsg = "beginStackIndex: " + std::to_string(m_beginStackIndex) +
" endStackIndex: " + std::to_string(m_endStackIndex) +
" func: " + m_func;
LOG_ERROR(errorMsg, JAVASCRIPTENGINE_IMPL_DUKTAPE_MODULE_NAME);
throw utils::Exception(errorMsg);
}
}
编译器实际上是在告诉你发生了什么:
error: '~DuktapeStackVerification' has a non-throwing exception specification but can still throw
note: destructor has a implicit non-throwing exception specification
对于其他背景,您可以搜索诸如"C++抛弃析构函数"之类的术语,您会发现(例如,此处或此处(截至 C++11,析构函数被隐式标记为nothrow(true)
,因为从析构函数中抛出通常被认为是危险的。要覆盖该默认值,您必须将析构函数显式注释为noexcept(false)
- 或者干脆停止抛出,并使用其他机制来指示问题。无论如何,它看起来像是对编程错误的断言,因此立即终止可能与抛出异常一样好。
相关文章:
- 警告处理为错误这里有什么问题
- Project Euler问题4的错误解决方案
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 谷歌启动B轮巴士路线问题错误的答案?
- C++编译问题错误 - C2332:<类:缺少标记名称>
- 编译方面的问题.错误E0413、E0434、C2664、C2440
- 在C 中的初学者,我面临此问题错误C3867
- C++:创建线程时出现问题;错误 C2672:"std::invoke":找不到匹配的重载函数
- 模板方法定义的问题 - 错误C2244:无法将函数定义与现有声明匹配
- C 继承问题错误C2084功能已经具有主体
- 安装 QT 后的新手问题 - 错误:未知类型名称"QApplication"
- Stroustrup的代码审查-编程原理-Ch-4-问题:3-错误:矢量下标超出范围
- C 问题错误在此函数中被统一使用
- 返回模板类的模板函数 - GCC 编译问题 - 错误:令牌之前'<'预期非限定 ID
- CMake CLion 问题 - 错误:无法确定目标"XYZ"的链接语言
- 试图将数据写入文件时出现问题.错误LNK2019:未解析的外部符号
- c++初始化列表问题-错误:试图引用已删除的函数
- visual studio 2012 - SFGUI/ c++编译问题.错误2019:未解析的外部符号
- Makefile问题:错误127,255,在Makefile中运行程序
- 将成员函数用作操作数时出现C++问题.错误C2679