Hi, I want to call a C function from within the same executable as my lua VM through FFI but I get undefined symbol error. Why? file: my_func.lua local ffi = require("ffi") ffi.cdef[[ void my_func(void); ]] ffi.C.my_func() file: main.c #include <luajit-2.0/lauxlib.h> #include <luajit-2.0/lua.h> #include <luajit-2.0/lualib.h> extern void my_func(void) { printf("hello\n"); } int main(int argc, char **argv) { lua_State *L = luaL_newstate(); luaL_openlibs(L); if (luaL_dofile(L, "my_func.lua")) { printf("err: %s\n", lua_tostring(L, -1)); } lua_close(L); return 0; } ran with: $ gcc main.c -lluajit-5.1 $ ./a.out output: $ err: my_func.lua:6: /usr/lib/libluajit-5.1.so.2: undefined symbol: my_func
Attachment:
my_func.zip
Description: Zip compressed data