qt 交叉编译后 无libqxcb_关于交叉编译qt与opencv源码,并移植到arm板

1.如何编译qt与opencv源码

a.当时我是参考了很多文章,试过很多次才成功的,这里推荐两个比较全面的教程。

opencv: https://blog.csdn.net/zdyueguanyun/article/details/51272989

qt: https://blog.csdn.net/jzzy_hony/article/details/80883473

如果大家感兴趣可以自己去试试编译一下。

b.每个人的电脑不同,环境不同,问题也多种多样,如果你不想再在这上面浪费时间,我也提供我编译好的库给大家

链接:https://pan.baidu.com/s/1kKHD1iR19jXUIEHtgmWpbA

提取码:ufkl

注意:

编译链为arm-linux-gnueabi-

下载解压到/usr/local目录下

2.如何使用编译好的源码库生成arm架构可执行程序

a.为了使qmake工具起作用,我们要把它放到环境变量里,有的教程是直接修改/etc/profile(全局有效),我们这里新建一个qmake-v.sh脚本文件(当前终端有效),放在~/下,后面会用到,内容如下:

b4bbf50a53370043c25e9b9b0aa171b3.png

完成后继续下一步

b.现在我们编译工具,库都有了,就剩写代码了,打开qt,新建工程0e458e00e55b72d73f292420d4629ad9.png写好代码,编译执行无错

3.如何生成arm可执行程序

a.关闭QT,进入工程所在文件夹12c637e1f04f0bb2cece885fecb9bfef.png首先复制一份源代码

b.进入复制的源代码文件夹里0a45ff9b77a535e4833a70f37535f1fe.pngsource一下上面保存的脚本文件

c.现在开始编译arm版程序

修改 .pro文件里的INCLUDEPATH和LIBS路径为编译好的arm库路径6b1ad2aad8f35552a9de036bac6f9fc7.png

qmake生成Makefile(其中指定了编译工具链),make编译,在qt软件中执行没错的话,这一步就不会报错8f84a480246a42b7211b5780ea406071.png

查看一下文件属性490b9f0978b2f749a08f807e95068bb7.png

4.如何移植到arm板上

a.将编译好的文件夹中的lib拷贝到板子里,并添加环境变量8f6bb498aac4a6e6106482d87bf4752c.png

668561bcf56b8dea13c337cbb2e3ba28.png

8965cacffcbcf377548968776749cf21.pngqt库和opencv库路径

ba84ad8494edca5e0d0927cb7ac5fd7a.png上面QT环境变量非本人写,以后在研究

b.程序拷贝到任意目录并执行6ef6c7ba16371ba2f0662b07cb1aaa89.png

这是由于板子libm.so.6,libstdc++.so.6的版本低,其中还有libc.so.6(放弃该版本opencv,libc.so.6升级还未搞懂)改换opencv3.3.1版本,运行依旧要升级libm.so.6,libstdc++.so.6

c.升级libm.so.6,libstdc++.so.6(做好重新刷机的准备)d5200a73be8a6c5f9d8103a639310daa.png

将libm-2.31.so和libstdc++.so.6.28拷贝到板子的/lib下d129386de7a7115188009523cf89d06f.png

再cp libm-2.23.so libstdc++.so.6.0.21 ~/

进入~下,执行如下命令

ln -s libm-2.23.so libm.so.6  ln -s libstdc++.so.6.0.21 libstdc++.so.68a548518ff9eb243594c3be6e4ba13e8.png

然后进入/lib下执行

export LD_LIBRARY_PATH=/root:$LD_LIBRARY_PATH  (为了防止rm后,命令无法使用)

rm libm.so.6 libstdc++.so.6

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

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

d.最终运行结果4587e8b4f6d7ade2a5ff56921586659a.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值