我正在尝试将Lua脚本加载到我的c ++应用程序中并运行它。 我决定使用LuaJIT来利用它的FFI库。 但我有这个奇怪的问题,我的Lua脚本无法看到我在C ++代码中定义的函数符号,并且在运行我的应用程序时出现此错误:
未定义的符号:test_func_a
下面是我的C ++和Lua代码:
// C ++ //
local ffi = require('ffi');
ffi.cdef[[
void test_func_a (void);
]]
ffi.C.test_func_a()
}
// //的Lua
Caused by: java.io.IOException: Cannot run program "npm" (in directory "/home/pi/projects/paho.mqtt.javascript"): error=2, No such file or directory
默认情况下gcc会导出所有符号,为什么luajit无法看到它们?
答案 0 :(得分:1)
使用:
extern "C" __declspec(dllexport) void test_func_a ( void ) {printf ("hello\n" );}