В настоящее время у меня есть проблема, когда Lua5.1/Lua5.2 может загружать и использовать модуль, а LuaJIT не может. Это странно, поскольку LuaJIT должен быть ABI-совместим с Lua, верно?
Как я могу это исправить?
В настоящее время у меня есть проблема, когда Lua5.1/Lua5.2 может загружать и использовать модуль, а LuaJIT не может. Это странно, поскольку LuaJIT должен быть ABI-совместим с Lua, верно?
Как я могу это исправить?
Я решил это, просто удалив устанавливаемую строку в v4l_lua.c (строка). Спасибо @Youka, @siffiejoe и @Etan-Reisner за предложение!
Интересно, почему Lua загрузил модуль даже без предупреждения (и чтобы он работал!)
-llua5.1
из командной строки компиляции. - person siffiejoe   schedule 23.07.2015gcc -Wall -pedantic -fPIC v4l_lua.c core.c -shared -o v4l2.so -I /usr/include/lua5.1/ -lv4lconvert
я все равно получаю ту же ошибку. - person max1220   schedule 24.07.2015luaopen_v4l
доступна... и затем sth. ужасное бывает. Что меня смущает, так это то, как lua_settable используется в C . - person Youka   schedule 24.07.2015lua_settable
сам по себе правильный - он просто делает что-то странное и бесполезное - но он делает следующийreturn 1
неверным, потому что в стеке Lua не осталось ничего, что можно было бы вернуть. Это может просто вызвать SIGSEGV, который вы испытываете, поэтому вам следует удалить его (или, альтернативно, изменитьreturn 1
наreturn 0
). - person siffiejoe   schedule 24.07.2015