lua-5.2.3编译问题记录quot;libreadline.so: undefined reference to `PC#39;quot;
生活随笔
收集整理的這篇文章主要介紹了
lua-5.2.3编译问题记录quot;libreadline.so: undefined reference to `PC#39;quot;
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者:zhanhailiang 日期:2014-10-21 [root@~/software]# cd lua-5.2.3
[root@~/software/lua-5.2.3]# make linux
cd src && make linux
make[1]: Entering directory `/root/software/lua-5.2.3/src'
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
make[2]: Entering directory `/root/software/lua-5.2.3/src'
gcc -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline
/usr/local/lib/libreadline.so: undefined reference to `PC'
/usr/local/lib/libreadline.so: undefined reference to `tgetflag'
/usr/local/lib/libreadline.so: undefined reference to `tgetent'
/usr/local/lib/libreadline.so: undefined reference to `UP'
/usr/local/lib/libreadline.so: undefined reference to `tputs'
/usr/local/lib/libreadline.so: undefined reference to `tgoto'
/usr/local/lib/libreadline.so: undefined reference to `tgetnum'
/usr/local/lib/libreadline.so: undefined reference to `BC'
/usr/local/lib/libreadline.so: undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make[2]: *** [lua] Error 1
make[2]: Leaving directory `/root/software/lua-5.2.3/src'
make[1]: *** [linux] Error 2
make[1]: Leaving directory `/root/software/lua-5.2.3/src'
make: *** [linux] Error 2
這是由于lua編譯依賴readline庫,readline庫依賴ncurses庫。但沒有指定。就會出現“沒有定義的符合引用”錯誤。
解決方式是改動${LUA_DIR}/src/Makefile中linux編譯target=linux。在SYSLIBS變量中追加‘-lncurses’選項就可以。例如以下:
105 linux: 106 $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses"此時又一次運行:
[root@~/software/lua-5.2.3]# make linux install cd src && make linux make[1]: Entering directory `/root/software/lua-5.2.3/src' make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses" make[2]: Entering directory `/root/software/lua-5.2.3/src' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/root/software/lua-5.2.3/src' make[1]: Leaving directory `/root/software/lua-5.2.3/src' cd src && mkdir -p /usr/local/bin /usr/local/include /usr/local/lib /usr/local/man/man1 /usr/local/share/lua/5.2 /usr/local/lib/lua/5.2 cd src && install -p -m 0755 lua luac /usr/local/bin cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp /usr/local/include cd src && install -p -m 0644 liblua.a /usr/local/lib cd doc && install -p -m 0644 lua.1 luac.1 /usr/local/man/man1至此,lua-5.2.3成功安裝:
[root@~/software/lua-5.2.3/src]# /usr/local/bin/lua -v Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio轉載于:https://www.cnblogs.com/wzzkaifa/p/7138020.html
總結
以上是生活随笔為你收集整理的lua-5.2.3编译问题记录quot;libreadline.so: undefined reference to `PC#39;quot;的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring框架集成mybatis框架的
- 下一篇: c# char unsigned_dll