原子新出了QT教程,磨刀霍霍,但是配置好麻烦。
一切的建立是在原子的文档《【正点原子】I.MX6U Qt移植V1.3》。无原文链接发不了转载
总流程
1.配置tslib
,这个步骤按照原子的来没问题
tslib为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能.盲猜全称 touch screen library
2.编译QT源码,出问题
因为我用的是5.12.9,原子这个教程是5.5.1
2.1下载,解压,新建输出路径一致
2.2生成一个配置脚本
vi autoconfigure.sh
然后输入
#!/bin/sh
./configure \
-prefix /home/alientek/qt5.5.1/qt-everywhere-opensource-src-5.5.1/arm-qt \
-confirm-license \
-opensource \
-shared \
-release \ -make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-no-fontconfig \
-nomake examples -nomake tools -nomake tests -no-iconv \ -tslib \ -I/home/alientek/tslib/arm-tslib/include \
-L/home/alientek/tslib/arm-tslib/lib
exit
然后运行这个脚本就可以了,但是在5.12.9下,第11行-qt-sql-sqlite \
和第22行的-no-xcursor -no-xfixes -no-xrandr -no-xrender \
通不过。
报错:
Invalid value given for boolean command line option ‘sql-sqlite’.
Unknown command line option ‘-no-xcursor’
解决办法:
将报错的那行的-qt-sql-sqlite \
改成sql-sqlite
删除第22行,因为后面几个也是没有。然后再编译就ok了。
2.3 指定交叉编译工具及tslib路径
这里可以通过下面这个软件查看自己的gcc之类的安装路径,然后替换掉原子的配置
whereis arm-linux-gnueabihf-gcc
2.4 make
make 编译后执行make install安装到指定路径,然后进入路径下的arm-qt/bin,查看版本
chengx@ubuntu:~/qt/qt5.12.9/qt-everywhere-src-5.12.9$ make -j8
...
chengx@ubuntu:~/qt/qt5.12.9/qt-everywhere-src-5.12.9$ make install
...
chengx@ubuntu:~/qt/qt5.12.9/qt-everywhere-src-5.12.9$ cd arm-qt/
chengx@ubuntu:~/qt/qt5.12.9/qt-everywhere-src-5.12.9/arm-qt$ cd bin/
chengx@ubuntu:~/qt/qt5.12.9/qt-everywhere-src-5.12.9/arm-qt/bin$ ls
canbusutil lrelease qlalr qmlcachegen qmlmin qmltestrunner qtdiag qvkgen syncqt.pl xmlpatternsvalidator
fixqt4headers.pl lupdate qmake qmlimportscanner qmlpreview qscxmlc qtpaths rcc uic
lconvert moc qml qmllint qmlscene qtattributionsscanner qtplugininfo repc xmlpatterns
chengx@ubuntu:~/qt/qt5.12.9/qt-everywhere-src-5.12.9/arm-qt/bin$ ./qmake -v
QMake version 3.1
Using Qt version 5.12.9 in /home/chengx/qt/qt5.12.9/qt-everywhere-src-5.12.9/arm-qt/lib
chengx@ubuntu:~/qt/qt5.12.9/qt-everywhere-src-5.12.9/arm-qt/bin$
源码编译完成
3.移植tslib到imx6u中
4.移植arm-qt 到imx6u中
遇到的问题
这个是在编译QT5.12.9源码的时候出现的。按照原子的命令,生成一个配置脚本,但是运行不通过。
Invalid value given for boolean command line option ‘sql-sqlite’.
这是因为相对比原子使用的5.5.1,我编译的是5.12,命令行更新了。解决办法:将报错的那行的-qt-sql-sqlite \
改成sql-sqlite