博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编译lua5.3.2报错提示libreadline.so存在未定义的引用解决方法
阅读量:4692 次
发布时间:2019-06-09

本文共 1213 字,大约阅读时间需要 4 分钟。

从官网上下载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 statusMakefile:63: recipe for target 'lua' failedmake[2]: *** [lua] Error 1make[2]: Leaving directory '/home/abuu/project/lua-5.3.2/src'Makefile:110: recipe for target 'linux' failedmake[1]: *** [linux] Error 2make[1]: Leaving directory '/home/abuu/project/lua-5.3.2/src'Makefile:55: recipe for target 'linux' failedmake: *** [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"

保存后再次编译,通过。

转载于:https://www.cnblogs.com/kokoer-wu/p/5289904.html

你可能感兴趣的文章
双向链表的实现
查看>>
谈一谈SQL Server中的执行计划缓存(下)
查看>>
vim使用
查看>>
asp.net如何定时执行任务
查看>>
在github上实现页面托管预览功能
查看>>
css选择器
查看>>
prim
查看>>
给陌生人写一封信
查看>>
noip2013花匠
查看>>
[CF]Equalize Them All
查看>>
React Ant design table表单与pagination分页配置
查看>>
重大发现: windows下C++ UI库 UI神器-SOUI(转载)
查看>>
linux 压缩文件的命令总结
查看>>
linux下alias命令具体解释
查看>>
codeforces#254DIV2解题报告
查看>>
自己写的微信小程序炸金花简单版
查看>>
git
查看>>
边工作边刷题:70天一遍leetcode: day 34-1
查看>>
边工作边刷题:70天一遍leetcode: day 45-1
查看>>
Xcode工作区间xxxx.xcworkspace不包含xxxx.xcodeproj
查看>>