undefined reference to `tputs‘

news/2024/10/21 11:53:30/

        昨天在Debian11 上编译 bluez 的时候,看这里,出现了如下这个错误,一般这种未定义的错误提示都是没有链接正确的库导致,但是搞了很久都没解决。

奇怪的是之前在 Centos 上编译却没有遇到这个问题,而且在 configure 时也是添加了 -lreadline -lncurses

 生成的 Makefile 里也有有了这个对应的设置

一开始怀疑是不是编译的时候这个选项没加进去,所以我就在错误指示的那一行:make[3]: *** [Makefile:3992: client/bluetoothctl] Error 1

添加了一下打印:

 同时把bluez.mk 里的./configure 那一行注释掉,这样不再重新生成新的Makefile,否则上面这一行就白加了,结果如下,能看到有链接的库目录,以及链接哪些库: 

然后看到Makefile 里它后面还跟了 $(LIB) 这个变量,那也打印了一下这个变量是什么:

这个LIB 是空的,于是我只是想尝试一下直接在这个Makefile 里添加连接库,如下:

 结果那个错误编译过去了,只是还有其他地方也是这样的错误:

 

那说明 configure 里的 LDFLAGS 并不能设置链接哪些库,而应该只是设置路径的,我们应该用 LIBS,所以修改成这样:

最后编译成功,完美解决

 

而且在查看 configure -help 帮助的时候,其实它已经说明了这两个环境变量的用法:

 

思考:其实从在 LDFLAGS 里添加链接库名称,这样看来也不合理,因为链接库应该是放在编译选项的最后,若放到要编译的对象(即.o文件)前,那之后的对象在链接的时候肯定是找不到对应符号的。 但如果在生成 Makefile 的时候,这个变量放到编译选项的最后应该也可以编译成功,之前在 Centos 编译成功难道是这样的,现在也不想去验证了。看来在执行 configure 前还是需要看一下 help 了。

 

 

 

 


http://www.ppmy.cn/news/550545.html

相关文章

spi控制器和spi设备的加载过程

spi控制器都是挂在platform总线上的,所以要等platform总线上的设备驱动加载spi控制器完成后才能加载spi设备。 1.spi控制器加载 由spi控制器驱动程序调用spi_register_master来完成spi控制器驱动加载 int spi_register_master(struct spi_master *master) { ... s…

新能源车牌 普通车牌 特殊车牌正则校验

新能源车牌: 第二位和最后一位 必须是数字或者是DF 字母“D”代表纯电动汽车,字母“ F”代表非纯电动汽车(包括插电式混合动力和燃料电池汽车等) 小型车字母在签发单位后 第一位 大型车字母车牌号最后一位 final String patte…

车牌号归属地查询,免费API

接口地址: https://api.kertennet.com/live/licencePlate 返回格式: json 请求方式: GET 请求示例: https://api.kertennet.com/live/licencePlate?num京A12345 接口完整地址:跳转 请求参数说明: 返回数据:

车牌输入法 车牌号快捷输入法 支持普通车牌新能源车牌

车牌输入法 车牌号快捷输入法 支持普通车牌&新能源车牌 效果图如下 上代码 前提:import plateInput from ‘/components/uni-plate-input/uni-plate-input.vue’; 下载1:uni-plate-input.less 下载2:uni-plate-input.css 下载2&#xf…

JAVA根据车牌获取归属地

最近在项目中遇到根据车牌判断归属地,特此记录一下 JSON文件 直接贴代码:应该能看懂吧!!! {"codeInfo": [{"Hp": "冀A","city": "石家庄","province"…

怎样看车牌

转载自 http://chengtianle.blog.hexun.com/3071909_d.html 2006年4月10日 北京[京] AB(出租车)CEFHG(远郊区县) 上海[沪] ABC(远郊区县)D 天津[津] ABCE(出租车) 重庆[渝] A直属…

车牌识别(中国)

摘要 代码:(https://download.csdn.net/download/ALiLiLiYa/86885535) 提出了LPRNet端到端方法自动车牌识别,无需初步字符分割。我们的方法灵感来自于-在深度神经网络方面取得突破实时,中文识别准确率高达95% 车牌: LPRNet由轻量…

中国车牌

第一个汉字 "京","沪","津","渝","冀","晋","蒙","辽","吉","黑","苏","浙","皖","闽","赣","鲁","…