jinq0123 / LuaPbIntf

Binding Protobuf 3 to Lua 5.3
MIT License
134 stars 41 forks source link

您好,为什么Makefile中没有连接lua的库呢? #5

Closed wondergong closed 7 years ago

wondergong commented 7 years ago

您好,为什么Makefile中没有连接lua的库呢? 编译后生成的luapbIntf.so,用ldd -r查看显示很多undefined symbols, 是不是我哪一步错了,那些库都和源码都添加到对应的目录下了

jinq0123 commented 7 years ago

luaIntf 仅有头文件,不需要链接。

lua库也不需要链接,因为主程序会链接lua库。需确保主程序编译时带了链接选项 "-Wl,-E"。其他lua插件也是不链接lua库的,如 lfs(lua file system). 如果主程序链接lua库,插件也链接了lua库,如果有一个是静态链接,运行时会报错退出。Linux下的Lua程序是静态链接lua库,所以插件就不能链接lua库了。

可以试着链接lua库,看是否会出错。

undefined symbol:_Z8luaL_lenP9lua_Statei 应该是主程序编译时缺少 "-Wl,-E"。

wondergong commented 7 years ago

非常感谢解答,谢谢!