加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

编译lua5.3.2报错提示libreadline.so存在未定义的引用解决措施

发布时间:2021-12-10 18:04:25 所属栏目:教程 来源:互联网
导读:从官网上下载5.3.2的源码后,make linux进行编译,提示报错: gcc -std=gnu99 -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline /usr/local/lib/libreadline.so:对tputs未定义的引用 /usr/local/lib/libreadline.so:对tgoto未定义的引用 /usr/local/lib/l
从官网上下载5.3.2的源码后,make linux进行编译,提示报错:
 
gcc -std=gnu99 -o lua  lua.o liblua.a -lm -Wl,-E -ldl -lreadline
/usr/local/lib/libreadline.so:对‘tputs’未定义的引用
/usr/local/lib/libreadline.so:对‘tgoto’未定义的引用
/usr/local/lib/libreadline.so:对‘tgetflag’未定义的引用
/usr/local/lib/libreadline.so:对‘UP’未定义的引用
/usr/local/lib/libreadline.so:对‘tgetent’未定义的引用
/usr/local/lib/libreadline.so:对‘tgetnum’未定义的引用
/usr/local/lib/libreadline.so:对‘PC’未定义的引用
/usr/local/lib/libreadline.so:对‘tgetstr’未定义的引用
/usr/local/lib/libreadline.so:对‘BC’未定义的引用
collect2: error: ld returned 1 exit status
Makefile:63: recipe for target 'lua' failed
make[2]: *** [lua] Error 1
make[2]: Leaving directory '/home/abuu/project/lua-5.3.2/src'
Makefile:110: recipe for target 'linux' failed
make[1]: *** [linux] Error 2
make[1]: Leaving directory '/home/abuu/project/lua-5.3.2/src'
Makefile:55: recipe for target 'linux' failed
make: *** [linux] Error 2
 
报错原因是无法从libreadline.so库中定位tputs、tgoto等函数位置,那这些函数可能是由其他共享库所引入。
上网查询一下这些函数,发现这些函数来源于ncurses,于是从官网上下载ncurses源码进行编译。
安装完ncurses后再次"make linux"试了试,依然报错,于是检查、添加依赖,在src/Makefile中修改如下:
 
linux:
    $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lncurses"
 
保存后再次编译,通过。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读