本次移植的主要目的是让嵌入式系统具备蓝牙和触摸屏功能。采用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
还有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\