华为云IoT智慧物流案例07 | QT应用开发遇到的问题总结及QT应用功能增加

举报
实柏 发表于 2021/08/03 03:11:48 2021/08/03
【摘要】 问题:运行QT应用程序后出现库文件版本不一致的问题库版本不一致1.因为在之前的步骤中有进行过例程及hello_qt项目的测试到开发板运行且成功,排除QT Kit环境因素2.查找是QT应用开发的哪一部分出了问题,排除UI、串口、北斗定位、定时器、传感器的问题后,定位发现问题在引入且编译jsoncpp静态库的问题(只要添加jsoncpp库文件且引用编译运行后,就会提示库版本不一致的问题)3.既...

问题:运行QT应用程序后出现库文件版本不一致的问题

库版本不一致
库

  • 1.因为在之前的步骤中有进行过例程hello_qt项目的测试到开发板运行且成功,排除QT Kit环境因素
    1

2

  • 2.查找是QT应用开发的哪一部分出了问题,排除UI、串口、北斗定位、定时器、传感器的问题后,定位发现问题在引入且编译jsoncpp静态库的问题(只要添加jsoncpp库文件且引用编译运行后,就会提示库版本不一致的问题)
    问题
  • 3.既然发现问题出现在了jsoncpp库,于是我下载了jsoncpp-src-0.5.0.tar.gz,参考这篇文章:https://www.jianshu.com/p/aa377e0df19a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
    用自己的arm编译器交叉编译出了jsoncpp静态库并添加到项目中进行测试,结果还是出现了库版本丢失的问题。版本
  • 4.既然用自己的编译器编译后还是出现此问题,那就不是jsoncpp静态库的问题,而是arm开发板中静态库所依赖的libstdc++库文件的问题
    所以我将我
    arm开发板
    libstdc++依赖的库文件用Ubuntuarm-linux-gnueabihf工具链依赖的库文件进行精准替换

解决方法:

根据提示查看对应的路径

strings /usr/lib/libstdc++.so.6 | grep GLIBCXX

发现确实没有GLIBCXX_3.4.26
1
Ubuntu终端查找arm-linux-gnueabihf工具链下libstdc++.so.6链接的动态库并传输至开发板替换
查找命令:

sudo find / -name "libstdc++.so*"

在这里插入图片描述
传输至开发板对应路径:

scp /usr/arm-linux-gnueabihf/lib/libstdc++.so.6.0.28 root@192.168.3.37:/usr/lib

在这里插入图片描述
删除原本老的动态库:

rm -rf /usr/lib/libstdc++.so.6

重新建立软链接:

ln -s libstdc++.so.6.0.28 libstdc++.so.6

再次查看发现GLIBCXX更新完成:

strings /usr/lib/libstdc++.so.6 | grep GLIBCXX

在这里插入图片描述
在这里插入图片描述
再次运行QT程序又发现另一个动态库版本不够
在这里插入图片描述
同样依葫芦画瓢查找对应路径:

strings /lib/libm.so.6 | grep GLIBC

在这里插入图片描述
Ubuntu终端查看libm.so.6是依赖哪个动态库并传输至开发板对应路径
查找命令:

sudo find / -name "libm.so*"

查看依赖哪个动态库:

ll /usr/arm-linux-gnueabihf/lib/libm.so.6

传输至开发板:

scp /usr/arm-linux-gnueabihf/lib/libm-2.31.so root@192.168.3.37:/lib/

在这里插入图片描述
在这里插入图片描述
开发板对应操作
删除原本老的动态库:

rm -rf /lib/libm.so.6

重新建立软链接:

ln -s libm-2.31.so libm.so.6

再次查看发现GLIBCXX更新完成:

strings /lib/libm.so.6 | grep GLIBC

在这里插入图片描述
最终再次运行QT应用成功运行(不再为库版本不一致烦恼.jpg)
在这里插入图片描述
技术指导:
华为云社区与华为云学院:https://edu.huaweicloud.com/

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。