[交叉编译]QT 5.9 arm_linux 环境下裁剪

本次移植的主要目的是让嵌入式系统具备蓝牙和触摸屏功能。采用qt5.9.0开发应用程序。关于QT5移植的帖子很多,没必要每一步都写的那么详细。把移植的关键步骤分享出来就行了。

QT5的移植:
1.移植tlibs软件包。该实例以tslib为例,其它功能添加和该实例相似。
2.根据目标平台的具体要求修改qmake.conf文件:

qt-everywhere-opensource-src-5.9.X/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf

3.最后在编辑.config文件。

1.配置文件

实例是参阅很多帖子总结出的config文件。在QT5.9.0 和QT5.9.2 已经测试过。编译时QT5.9.2无需修改代码,QT5.9.0 需要修改部分代码才能通过。若遇到问题,基本上搜索都能找到答案。具体的配置文件如下:

  1 #!/bin/sh
  2 ./configure -prefix /opt/qt5.9.2 \
  3     -opensource \
  4     -debug \
  5     -confirm-license \
  6     -xplatform linux-arm-gnueabi-g++ \
  7     -optimized-qmake \
  8     -c++std c++11 \
  9     --rpath=no \
 10     -pch \
 11     -shared \
 12     -no-iconv \
 13     -no-xcb \
 14     -make libs \
 15     -nomake examples \
 16     -make tools -nomake tests \
 17     -gui \
 18     -widgets \
 19     -dbus-runtime \
 20     --glib=no \
 21     --iconv=no \
 22     --pcre=qt \
 23     --zlib=qt \
 24     --freetype=qt \
 25     --harfbuzz=qt \
 26     -no-opengl \
 27     -linuxfb \
 28     -tslib \
 29     --libpng=qt \
 30     --libjpeg=qt \
 31     --sqlite=qt \
 32     -plugin-sql-sqlite \
 33     -I/opt/tslib/include \
 34     -L/opt/tslib/lib \
 35     -recheck-all

2.QT5裁剪

以上这个配置生成的文件太大 1.2G,不适合项目要求。因此需要二次修改,也就是我们常说的裁剪。

再裁剪前先要学习一下 QT config文件。具体参考文档如下:
https://www.cnblogs.com/findumars/p/6254629.html

https://blog.csdn.net/caih2000/article/details/53186484?spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-2defaultOPENSEARCHdefault-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-2defaultOPENSEARCHdefault-1.nonecase

还有QT模块功的介绍:
http://c.biancheng.net/view/1842.html

最后还有make file的修改。

第一版配置文件

  1 #!/bin/sh
  2 
  3 ./configure  -prefix /opt/qt5.9.2 \
  4         -v\
  5         -confirm-license\
  6         -opensource\
  7         -release\
  8         -make libs\
  9         -xplatform linux-arm-gnueabi-g++\
 10         -optimized-qmake\
 11         -pch \
 12         --sqlite=qt\
 13         -plugin-sql-sqlite\
 14         -c++std c++11\
 15         -qt-zlib\
 16         -tslib\
 17         -no-opengl\
 18         -no-sse2\
 19         -no-cups\
 20         -no-xcb\
 21         -no-iconv\
 22         -no-gif\
 23         -no-ico\
 24         -no-separate-debug-info\
 25         -nomake examples\
 26         -nomake tools\
 27         -nomake tests\
 28         -I/opt/tslib/include\
 29         -L/opt/tslib/lib\

3 遇到的问题解决方法

https://www.manongdao.com/article-1470008.html

4 最终带蓝牙配置及openssl功能的config文件:

   1 #!/bin/sh
  2 
  3 ./configure  -prefix /opt/qt5.9.0 \
  4         -v\
  5         -confirm-license\
  6         -opensource\
  7         -release\
  8         -make libs\
  9         -xplatform linux-arm-gnueabi-g++\
 10         -pch\
 11         --sqlite=qt\
 12         -plugin-sql-sqlite\
 13         -c++std c++11\
 14         -qt-zlib\
 15         -tslib\
 16         -openssl-linked -I/home/vmuser/Mywork/other/rootfstools/openssl_tools/include OPENSSL_LIBS='-L/home/vmuser/Mywork/other/rootfstools/openssl_tools/lib -lcrypto -ls    sl'\
 17         -L'/home/vmuser/Mywork/other/rootfstools/openssl_tools/lib -Wl,-rpath=/home/vmuser/Mywork/other/rootfstools/openssl_tools/lib'\
 18         -no-opengl\
 19         -no-sse2\
 20         -no-cups\
 21         -no-xcb\
 22         -no-iconv\
 23         -no-gif\
 24         -no-ico\
 25         -no-alsa\
 26         -no-separate-debug-info\
 27         -nomake examples\
 28         -nomake tools\
 29         -nomake tests\
 30         -I/opt/tslib/include\
 31         -L/opt/tslib/lib\
 32         -L/opt/BlueZ/lib\
 33         -I/opt/BlueZ/include\

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值