X210学习--QT移植(4)_linux下QT应用开发实验

准备前提

1、参考 https://blog.csdn.net/baidu_38601468/article/details/121595642
2、X210开发板,连接挂载上NFS。

开始

1、把ubuntu下安装的QT的库复制到开发板中
在rootfs/ 下创建一个目录存放QT的库 如,mkdir QT5.6.2
然后在把ubuntu下安装的QT的库复制到该目录下

cp /opt/QT5.6.2/lib/ ./ -rf

还要把qt的插件目录plugins拷贝过去

cp /opt/QT5.6.2/plugins/ ./ -rf

2、导出环境变量

export LD_LIBRARY_PATH=/QT5.6.2/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=/QT5.6.2/plugins   
export QT_QPA_FONTDIR=/QT5.6.2/lib/fonts            
export QT_QPA_FB_TSLIB=1    
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event2          
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=1024x600:mmSize=1024x600:offset=0x0:tty=/dev/tty1

可以把上面的语句放到开发板的/etc/profile中,这样每次启动就会执行。

3、测试
把编译生成qt程序cp到开发板的目录下执行。

报错1:./test1: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

分析解决:缺少libstdc++.so.6 库,可以到ubuntu下的交叉编译链下搜索,然后复制到开发板。

zcc@ubuntu:/usr/local/arm/arm-2009q3$ grep -rl "libstdc++.so.6*"
arm-none-linux-gnueabi/libc/usr/lib/libstdc++.so.6.0.12
arm-none-linux-gnueabi/libc/thumb2/usr/lib/libstdc++.so.6.0.12
arm-none-linux-gnueabi/libc/armv4t/usr/lib/libstdc++.so.6.0.12
share/doc/arm-arm-none-linux-gnueabi/info/gccinstall.info
share/doc/arm-arm-none-linux-gnueabi/html/gccinstall/specific.html
share/doc/arm-arm-none-linux-gnueabi/html/getting-started/chap-release.html
zcc@ubuntu:/usr/local/arm/arm-2009q3/arm-none-linux-gnueabi/libc/usr/lib$ cp libstdc++.* ~/x210/porting_x210/rootfs/rootfs/usr/lib/

再次到开发板下运行测试程序。开发板出现变化。但是开发板控制台还是报错。
报错2:QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed

分析解决:网上一些帖子说是缺少一个运行时库preloadable_libiconv.so,交叉编译得到这个后放进去/lib目录下即可。参考:http://blog.csdn.net/wuyu92877/article/details/52472810

配置

./configure -prefix=$PWD/_install --host=arm-none-linux-gnueabi #注意这里的_install是安装目录

编译

make CROSS_COMPILE=arm-linux-none-gnueabi- ARCH=arm

安装

sudo make install

这样安装会报错误:../libtool: line 1093: arm-none-linux-gnueabi-ranlib: command not found

因为当sudo时,将丢失PATH环境变量,所以,可以切换到root下进行安装 make install

最后把_install/lib目录下的preloadable_libiconv.so拷贝到开发板中的库目录,,然后在开发板中导出路径即可。

zcc@ubuntu:~/x210/QT5.x_Porting/libiconv-1.14/_install/lib$ cp preloadable_libiconv.so ~/x210/porting_x210/rootfs/rootfs/lib/ 

在profile中加入下面:

export LD_PRELOAD=/lib/preloadable_libiconv.so

重启开发板,执行qt测试程序,不再报错。成功。

Finsh !

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值