2012-07-12 158 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行。