2012-07-12 157 views
1

当我尝试编译一个小Lua程序中,我得到这些错误:的Lua编译链接错误

/usr/lib//liblua52.so: undefined reference to `dlsym' 
/usr/lib//liblua52.so: undefined reference to `dlerror' 
/usr/lib//liblua52.so: undefined reference to `dlopen' 
/usr/lib//liblua52.so: undefined reference to `dlclose' 

当然,我-ldl链接。我在我的Ubuntu上安装了lua5.2-dev。 如果您需要更多信息,请咨询我。

谢谢!

+0

什么是确切的编译器/链接器命令行,给你这个错误? – che 2012-07-12 07:55:23

+0

g ++ -o client Box.o ConnexionException.o GameData.o LuaManager.o main.o Parser.o ParsingException.o Player.o Socket.o -L/usr/lib/-ldl -Llib/lib/-Wl, - -rpath = lib/lib -llua52 -Wl, - rpath = lib/lib -lSLB /usr/lib//liblua52.so:未定义的对'dlsym'的引用 /usr/lib//liblua52.so:undefined reference to'dlerror' /usr/lib//liblua52.so:未定义的引用'dlopen' /usr/lib//liblua52.so:未定义的引用'dlclose' – 2012-07-12 07:58:00

+1

将'-ldl'放在链接的末尾命令行。 – lhf 2012-07-12 11:42:14

回答

5

当我尝试编译一个小Lua程序中,我得到这些错误

号你得到这些错误,当你链接程序。

修复方法是在链接行末尾添加-ldl

+1

只是为了添加背景,让我添加您在现在删除的答案的评论中的链接:http://webpages.charter.net/ppluzhnikov/linker.html – che 2012-07-15 09:02:12

0

得到这个错误的简单方法是让你的PLAT变量在Makefile中设置错误。您需要将其设置在顶层Makefile和src/Makefile中。

合法值从定义中显示出大约10行。