交叉编译工具链:gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf
Qt:qt-everywhere-opensource-src-5.9.0.tar
一、移植
1、上传并解压:tar -xvf qt-everywhere-opensource-src-5.9.0.tar
2、将之前编译好的tslib库复制到/opt下
sudo cp TSLIB_INSTALL/ /opt/ -rf
3、修改与配置
cd qt-everywhere-opensource-src-5.9.0/
vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
添加并修改以下内容
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a
QMAKE_INCDIR +=/opt/TSLIB_INSTALL/include
QMAKE_LIBDIR +=/opt/TSLIB_INSTALL/lib
arm-linux-gnueabi修改为arm-linux-gnueabihf

cd ~/qt-everywhere-opensource-src-5.9.0/
对Qt进行如下配置
./configure -prefix /opt/qt5.9.0
-opensource
-release
-no-pch
-confirm-license
-xplatform linux-arm-gnueabi-g++
-qt-zlib
-no-iconv
-no-gif
-qt-libjpeg
-no-opengl
-skip qtdeclarative
-skip qtquickcontrols
-skip qtquickcontrols2
-no-qml-debug
-no-cups
-no-glib
-no-dbus
-no-rpath
-no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2
-no-avx
-no-openssl
-nomake tools
-qreal float
-qt-libpng
-tslib
-nomake examples
-I /opt/TSLIB_INSTALL/include/ -L /opt/TSLIB_INSTALL/lib/
执行make
sudo make install
这样会在/opt/qt5.9.0目录下得到我们编译的qt库

二、测试
1、qt库部署
复制到~/rootfs/usr下,重命令为qt5
cp /opt/qt5.9.0/ ~/rootfs/usr/ -rf
cd ~/rootfs/usr
mv qt5.9.0/ qt5
修改~/rootfs/etc/profile添加以下内容
export LD_LIBRARY_PATH=/usr/qt5/lib:$LD_LIBRARY_PATH
export QT_QPA_GENERIC_PLUGINS=tslib
export QT_QPA_FONTDIR=/usr/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/qt5/plugins
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x600:mmSize=800x600:offse t=0x0:tty=/dev/tty1
export QT_QPA_FB_TSLIB=1
3、编写qt测试程序
设置环境变量
sudo vi /etc/profile
在最后添加:export PATH=/opt/qt5.9.0/bin:$PATH -- 不要写错
source /etc/profile
现在就可以使用qmake了
编写代码
cd ~/rootfs/root
vi qttest.cpp
1 #include 2 #include 3 4 int main(int argc, char *argv[]) { 5 QApplication a(argc, argv); 6 QPushButton btn('Button Test'); 7 btn.show(); 8 return a.exec(); 9 } qmake -project vi root.pro 加上QT = core gui widgets 执行qmake make 可以看到生成可执行文件root 4、执行qt程序 给开发板上电,到root目录下执行./root,可以看到界面上已经出现按钮并可以点击,但按钮上并没有显示字体'Button Test',且console中也有提示,与fonts有关; 5、拷贝fonts mkdir ~/rootfs/usr/lib/fonts cp /usr/share/fonts/gnu-free/* ~/rootfs/usr/lib/fonts/ 重启运行./root 我们发现console不再提示且已经可以正常显示字体了。 如果我们的字体包含中文,此时是不能正常显示中文的,则可以拷贝/usr/share/fonts/wqy-zenhei/*至~/rootfs/usr/lib/fonts/下,把原Free*备份 这样就可以正常显示中英文了


上一篇:Linux4.1.15内核移植-imx6ull
下一篇:imx6ull之tslib移植
推荐阅读最新更新时间:2026-03-25 11:14
- 用于 7VIN 至 16VIN、1.5V 和 1.2V 输出的 LTM4628EV DC/DC 模块稳压器的典型应用电路
- 使用 Analog Devices 的 LTC3728LIGN 的参考设计
- DER-406 - 适用于 A19 灯的 5.76 W 高 PF 非隔离降压-升压型 TRIAC 调光 LED 驱动器
- ADR5045B 5V 输出精密微功率并联模式电压基准的典型应用
- LT3970EDDB-3.42 2.5V 降压转换器的典型应用
- MC78M08BDTG 8V 电流调节器的典型应用
- LT1021DCN8-5 精密电压基准的典型应用
- DER-282 - 100W, 扁平(11 mm), LLC DC-DC转换器
- REF193 低压差开尔文连接电压基准的典型应用电路
- LT3088EM 线性稳压器用于添加软启动的典型应用

MAX32625 PICO 嵌入式程序
零基础学嵌入式Linux C编程 (陈立伟)
现代雷达系统的信号设计
BFR340T






京公网安备 11010802033920号