Size: a a a

2019 July 29

m

mihacooper in pro.lua
так он же тебе сказал, нету: luaopen_libluacpp,  это какая-то sol'овая приблуда - open_libluacpp?
источник

IA

Ivan Azoyan in pro.lua
mihacooper
так он же тебе сказал, нету: luaopen_libluacpp,  это какая-то sol'овая приблуда - open_libluacpp?
источник

m

mihacooper in pro.lua
и в этом же сэмпле есть такая строчка:
lua.require("my_lib", sol::c_call<decltype(&open_mylib), &open_mylib>);
источник

m

mihacooper in pro.lua
Он её явно регистрирует
источник

IA

Ivan Azoyan in pro.lua
да
источник

IA

Ivan Azoyan in pro.lua
не скопировал main сюда
источник

m

mihacooper in pro.lua
ну если ты собираешься в либу, то твой main не вызовется
источник

IA

Ivan Azoyan in pro.lua
mihacooper
ну если ты собираешься в либу, то твой main не вызовется
ага
источник

IA

Ivan Azoyan in pro.lua
что делать?
источник

m

mihacooper in pro.lua
точка входа либы `luaopen_libluacpp`
источник

IA

Ivan Azoyan in pro.lua
оке
источник

IA

Ivan Azoyan in pro.lua
всё равно не работает, дописал
int luaopen_libluacpp(lua_State*) { return 0; }
при запуске lua script.lua та же самая ошибка:

lua: error loading module 'libluacpp' from file './libluacpp.so':
       ./libluacpp.so: undefined symbol: luaopen_libluacpp
источник

m

mihacooper in pro.lua
Ну вот прям если грубо то так как-то так. Я не проверял, могут быть ошибки:
int luaopen_libluacpp(lua_State* lua) {
   auto result = open_libluacpp(lua);
   sol::stack::push(lua, result);
   return 1;
}
источник

m

mihacooper in pro.lua
ты на винде?
источник

IA

Ivan Azoyan in pro.lua
linux
источник

m

mihacooper in pro.lua
тогда extern "C" int luaopen_libluacpp(lua_State* lua) {
источник

IA

Ivan Azoyan in pro.lua
nm -D libluacpp.so | c++filt | grep luaopen
00000000000600b4 T luaopen_libluacpp(lua_State*)
источник

IA

Ivan Azoyan in pro.lua
mihacooper
тогда extern "C" int luaopen_libluacpp(lua_State* lua) {
починено, спасибо
источник

IA

Ivan Azoyan in pro.lua
@mihacooper а как канонично делать?
источник

DF

Dollar Føølish in pro.lua
Ну точку входа достаточно объявить, разве нет?
источник