无法调用未知函数
Cannot call unknown function
我正在尝试使用 emscripten 编译中型现有代码库。当前所有内容都可以编译,但是当我尝试从 javascript 调用它时,出现错误:
Assertion failed: Cannot call unknown function InitHOG (perhaps LLVM optimizations or closure removed it?)
我声明为:
extern "C" {
void EMSCRIPTEN_KEEPALIVE InitHOG()
{ ... }
}
我正在将 javascript 中的函数链接到:
InitHog = Module.cwrap('InitHOG', 'void', []);
我的代码库正在被编译成库;库中的函数调用在我的 guihtml 库中,最后的链接命令是:
emcc -o ../../../../html/debug/bidirnecessary.js ../../../../objs_html/bidirnecessary.js/debug/demos/bidirnecessary/Driver.o -lenvironments -lmapalgorithms -lalgorithms -lgraphalgorithms -lgraph -lutils -lguihtml -L../../../../html/debug -Lapps/libs -Ldemos/libs -lpthread -g
关于为什么它无法从 javascript 找到我的函数的任何想法?
虽然 EMSCRIPTEN_KEEPALIVE
关键字在您将单个文件编译为 .js 输出时有效,但它 在我编译单个文件的 makefile 系统中不起作用 , 用 emar
做一个库, 然后 link 最后把所有东西都放在一起.
相反,您需要使用 -s
指令来指定要导出的函数。所以,像这样的东西是可行的。
emcc -o ../../../../html/debug/bidirnecessary.js ../../../../objs_html/bidirnecessary.js/debug/demos/bidirnecessary/Driver.o -lenvironments -lmapalgorithms -lalgorithms -lgraphalgorithms -lgraph -lutils -lguihtml -lgui -L../../../../html/debug -Lapps/libs -Ldemos/libs -lpthread -g -s EXPORTED_FUNCTIONS="['_InitHOG', '_DoFrame', '_MouseEvent']"
我正在尝试使用 emscripten 编译中型现有代码库。当前所有内容都可以编译,但是当我尝试从 javascript 调用它时,出现错误:
Assertion failed: Cannot call unknown function InitHOG (perhaps LLVM optimizations or closure removed it?)
我声明为:
extern "C" {
void EMSCRIPTEN_KEEPALIVE InitHOG()
{ ... }
}
我正在将 javascript 中的函数链接到:
InitHog = Module.cwrap('InitHOG', 'void', []);
我的代码库正在被编译成库;库中的函数调用在我的 guihtml 库中,最后的链接命令是:
emcc -o ../../../../html/debug/bidirnecessary.js ../../../../objs_html/bidirnecessary.js/debug/demos/bidirnecessary/Driver.o -lenvironments -lmapalgorithms -lalgorithms -lgraphalgorithms -lgraph -lutils -lguihtml -L../../../../html/debug -Lapps/libs -Ldemos/libs -lpthread -g
关于为什么它无法从 javascript 找到我的函数的任何想法?
虽然 EMSCRIPTEN_KEEPALIVE
关键字在您将单个文件编译为 .js 输出时有效,但它 在我编译单个文件的 makefile 系统中不起作用 , 用 emar
做一个库, 然后 link 最后把所有东西都放在一起.
相反,您需要使用 -s
指令来指定要导出的函数。所以,像这样的东西是可行的。
emcc -o ../../../../html/debug/bidirnecessary.js ../../../../objs_html/bidirnecessary.js/debug/demos/bidirnecessary/Driver.o -lenvironments -lmapalgorithms -lalgorithms -lgraphalgorithms -lgraph -lutils -lguihtml -lgui -L../../../../html/debug -Lapps/libs -Ldemos/libs -lpthread -g -s EXPORTED_FUNCTIONS="['_InitHOG', '_DoFrame', '_MouseEvent']"