Javascript 当cmake与emscripten一起使用时,如何解决额外导出的运行时方法异常?
这里找到了。但是,在使用类似的cmake文件时,抛出的Javascript 当cmake与emscripten一起使用时,如何解决额外导出的运行时方法异常?,javascript,c++,cmake,emscripten,Javascript,C++,Cmake,Emscripten,这里找到了。但是,在使用类似的cmake文件时,抛出的异常:RuntimeError:abort('cwrap'未导出。在运行生成的.js文件时,将其添加到额外导出的\u运行时\u方法(请参阅常见问题解答))中 CMakefileLists.txt代码: cmake_minimum_required(VERSION 3.10) project(solutions) add_definitions("-s EXPORTED_RUNTIME_METHODS='[\"ccall
异常:RuntimeError:abort('cwrap'未导出。在运行生成的.js
文件时,将其添加到额外导出的\u运行时\u方法(请参阅常见问题解答))中
CMakefileLists.txt代码:
cmake_minimum_required(VERSION 3.10)
project(solutions)
add_definitions("-s EXPORTED_RUNTIME_METHODS='[\"ccall\",\"cwrap\"]'")
add_definitions("-s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\",\"cwrap\"]'")
#SET_TARGET_PROPERTIES(test PROPERTIES LINK_FLAGS "-s EXTRA_EXPORTED_RUNTIME_METHODS=['ccall', 'cwrap']")
add_executable(test hello.cc)
set(CMAKE_EXECUTABLE_SUFFIX ".html")
hello.cc
代码:
#include <emscripten.h>
extern "C" {
double SquareVal(double val) {
return val * val;
}
}
int main() {
EM_ASM({
SquareVal = Module.cwrap('SquareVal', 'number', ['number']);
var x = 12.5;
alert('Computing: ' + x + ' * ' + x + ' = ' + SquareVal(x));
});
}
#包括
外部“C”{
双平方值(双平方值){
返回val*val;
}
}
int main(){
EM_ASM({
SquareVal=Module.cwrap('SquareVal','number',['number']);
var x=12.5;
警报('计算:'+x+'*'+x+'='+SquareVal(x));
});
}
我认为通过这种方式,cwrap
已经添加到了EXTRA\u EXPORTED\u RUNTIME\u方法中。如何解决这个问题?下面的方法对我来说很有效,直接调用emcc
,可能很容易适应emcmake
:emcc-o test.html-s'EXTRA_EXPORTED_RUNTIME_方法=[“cwrap”]-s EXPORTED_函数='[“_square”,“_main”]'hello.cpp