如何交叉编译 移植 QT
2019独角兽企业重金招聘Python工程师标准>>>
QT简介就不多说了,是诺基亚的东东,需求:将QT移植到ARM开发环境
首先的准备工作:
Linux环境: Linux 2.6.32-24-generic Ubuntu10.04
交叉编译工具:arm-linux- g++-4.4.3
Qt安装包: qt-everywhere-opensource-src-4.6.2.tar.gz
tslib库: tslib-1.4.tar.gz
然后就开始各种编译了:
一、编译tslib库
1>编译
tar zxvf tslib1.4.tar.gz
cd tslib
./autogen.sh
./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
make
make install
2>拷贝PC上/usr/local/tslib/* 的文件到开发板目录下的/usr/local
cp /usr/local/tslib/* /home/profiles/2440/rootfs/usr/local -rfd注意:/home/profiles/2440/rootfs/是nfs文件系统的根目录,注意跟自己的环境差异,随机应变即可 二、编译嵌入式qt
1>编译
tar zxvf qt-everywhere-opensource-src-4.6.2.tar.gz
cd qt-everywhere-opensource-src-4.6.2./configure \
-prefix /usr/local/qt-4.6.2-arm \ (安装路径)
-opensource \ (自由版本)
-confirm-license \ (遵守协议yes)
-release \ (编译和连接QT时关闭调试)
-shared \ (使用QT动态库)
-embedded arm \ (嵌入式arm架构)
-xplatform qws/linux-arm-g++ \ (交叉编译时的目标平台)
-no-qt3support \ (关闭QT3支持功能)
-fast \ (只对库及子目录make来快速配置QT)
-no-largefile \ (使大文件支持无效)
-qt-mouse-tslib \ (使用tslib来驱动鼠标箭头运行,即支持触摸屏)
-I /usr/local/tslib/include \ (添加一个显式的include路径)
-L /uar/local/tslib/lib \ (添加一个显式的lib路径)
-make tools \ (构建tools)
-nomake demos \ (不构建demos)
-nomake examples \(不构建examples)
-nomake docs \ (不构建docs)
-qt-libjpeg \ (使用jpeg库)
-qt-libpng \ (使用png库)
-qt-libtiff \ (使用tiff库)
-multimedia \ (构建QT多媒体模块)
-no-qvfb \ (不构建QVFB模块)
-no-svg \ (不构建SVG模块)
-no-cups \ (不编译CUPS支持)2>拷贝
cp /usr/local/qt-4.6.2-arm /home/profiles/2440/rootfs/usr/local/qt-4.6.2-arm -rfd
3>更改为大字体,并且支持中文,wenquanyi_120_50.qpf需要下载
(开发板上操作)
rm /usr/local/qt-4.6.2-arm/lib/fonts/* -f
cp wenquanyi_120_50.qpf /usr/local/qt-4.6.2-arm/lib/fonts/3>修改PC上环境变量以便编译
export ARMQTDIR=/usr/local/qt-4.6.2-arm \
export PATH=$ARMQTDIR/bin:$PATH \
export MANPATH=$ARMQTDIR/man:$MANPATH \
export LD_LIBRARY_PATH=$ARMQTDIR/lib:$LD_LIBRARY_PATH \qmake -v可以查看版本QMake version 2.01a
Using Qt version 4.6.2 in /usr/local/qt-4.6.2-arm/lib4>写一个测试程序并交叉编译
#include <QApplication>
#include <QLabel>int main(int argc, char *argv[])
{QApplication app(argc, argv);QLabel *label = new QLabel("Hello Qt!");label->show();return app.exec();
}
保存为hello.cpp
执行:
qmake -project
qmake hello.pro
(如果有错误提示QMAKESPEC has not been set, so configuration cannot be deduced.
则export QMAKESPEC=/usr/local/qt-4.6.2-arm/mkspecs/qws/linux-arm-g++设置环境变量后,
再qmake hello.pro,否则执行下一步)
makecp hello /home/profiles/2440/rootfs/sbin
拷贝程序到开发板5>修改开发板ts配置文件
vi /usr/local/etc/ts.conf
去掉module_raw input前面的注释和空格并保存
运行一下ts校正程序
/usr/local/bin/ts_calibrate
6>设置环境变量,开发板上执行
export QTDIR=/usr/local/qt-4.6.2-arm
export T_ROOT=/usr/local
export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib(注意/dev/fb0是framebuffer设备结点,/dev/input/event0是触摸屏设备结点名称,
注意自己的开发板是否一致,包括交叉编译并安装qt的目录/usr/local/qt-4.6.2-arm,
触摸屏校验文件的位置/etc/pointercal,配置文件的位置$T_ROOT/etc/ts.conf)7>运行hello程序
hello -qws
8>若需要开机即启动自己的qt程序,则需要修改启动脚本
vi etc/init.d/rcS(若脚本里有启动qtopia,如:
/bin/qtopia &
echo " " > /dev/tty1
echo "Starting Qtopia, please waiting..." > /dev/tty1
则注释这三句,在前面加上#
#/bin/qtopia &
#echo " " > /dev/tty1
#echo "Starting Qtopia, please waiting..." > /dev/tty1
)
在文件最后加上
/bin/mypda &
echo " " > /dev/tty1
echo "Starting my PDA..." > /dev/tty1
sleep 1
这样就会自动启动/bin目录下的mypda这个脚本。
建立这个脚本
vi /bin/mypda
输入
#!/bin/sh
export QTDIR=/usr/local/qt-4.6.2-arm
export T_ROOT=/usr/local
export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib
exec sbin/hello -qws
保存,chmod +x /bin/mypda,加执行权限
大功告成,reboot体验一下吧!
转载于:https://my.oschina.net/u/854744/blog/418304
如何交叉编译 移植 QT相关推荐
- OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/123696821 各位读者,知识无穷而人力有穷 ...
- arm qt mysql插件,关于移植QT的Sqlite数据库到ARM板运行的问题
关于移植QT的Sqlite数据库到ARM板运行的问题 运行一般的程序我们的步骤一般是在PC主机上编译,编译成功后交叉编译,然后把程序下载到ARM开发板上,因为主机的交叉编译库和ARM开发板的运行的QT ...
- anno arm移植Qt环境后,编译正常,程序无法正常启动问题的记录
anno arm移植Qt环境后,编译正常,程序无法正常启动问题的记录 Cannot load library libqxcb.so: (libQt5XcbQpa.so.5: symbol , vers ...
- 基于Hi3516DV300rtmp交叉编译移植
基于Hi3516DV300rtmp交叉编译移植 其实自己不太会写甚么博客,或者方法的,所以导致自己开发完一些功能后,后续再去看自己写的代码,去配置相关的功能也好,总是需要花费挺长时间重新回忆起来. 废 ...
- 天嵌开发版 imx6 移植qt
1.环境说明 QT 移植 - 系统: ubuntu 14.04 x64 - 编译器: arm-none-linux-gnueabi-gcc 4.8.3 - QT 5.5.1 2.下载源码 - 下载交叉 ...
- Qt + 觸控 移植 – Qt and Touch Screen Porting to SBC6446 with LEOs for DaVinci
完成了 Qt 接下來就是要讓觸控面板的功能也起來 因為之前有兩篇教學了 所以這篇照片可能會跳的比較快 不懂的話可以回去看看前兩篇的設定 [達文西] 建置開發環境 – Based on EDK6446 ...
- 移植Qt程序到surface RT
移植Qt程序到surface RT 1. 编译Qt库 Surface的操作系统是基于ARM架构的windows RT,所以需要编译出基于相应平台的Qt库. 1.1编译环境 Win8.1操作系统 Vis ...
- ubuntu交叉编译移植paho-mqtt-c
交叉编译移植paho-mqtt-c库 一.环境说明 近期项目需求,在imx6ull上集成MQTT通讯,准备在ubuntu16.04上通过交叉编译工具链arm-linux-guneabihf- (lin ...
- ubuntu下移植QT基本流程
配置tftp 配置tftp服务的步骤: 1.安装相关软件包:tftpd(服务端),tftp(客户端),xinetd sudo apt-get install tftpd tftp xinetd 2.建 ...
最新文章
- SAP QM维护检验计划指派取样策略时候报错:Sampling procedure is not permitted for insp.point-related inspection
- 危害网站关键词优化的因素如何避免?
- python调用C函数库
- c语言跑马灯实验报告,单片机跑马灯实验
- php包括web前端,web前端包括什么技术?
- [HNOI2016]网络(树链剖分+线段树+大根堆)
- 阿里云商品评价解析功能示例解析
- linux java缓存失效_转载:Linux服务器Cache占用过多内存导致系统内存不足最终java应用程序崩溃解决方案...
- django解决页面跳转问题
- java.lang.NumberFormatException: For input string:
- android 自动更新
- 单片机中断函数的编写
- 3709: [PA2014]Bohater
- Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
- python数据分析怎么画_跟小白学Python数据分析——绘制维恩图
- 微信扫付款后,付错款,不是好友也能联系到收款方
- 手机浏览网页或打开App时莫名弹出支付宝领红包界面的原因及应对措施
- getline()函数的几点疑惑
- 信息论 | Shannon编码MATLAB实现
- origin调整纵坐标刻度值_微教程:Origin怎样调整坐标轴刻度