2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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相关推荐

  1. OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/123696821 各位读者,知识无穷而人力有穷 ...

  2. arm qt mysql插件,关于移植QT的Sqlite数据库到ARM板运行的问题

    关于移植QT的Sqlite数据库到ARM板运行的问题 运行一般的程序我们的步骤一般是在PC主机上编译,编译成功后交叉编译,然后把程序下载到ARM开发板上,因为主机的交叉编译库和ARM开发板的运行的QT ...

  3. anno arm移植Qt环境后,编译正常,程序无法正常启动问题的记录

    anno arm移植Qt环境后,编译正常,程序无法正常启动问题的记录 Cannot load library libqxcb.so: (libQt5XcbQpa.so.5: symbol , vers ...

  4. 基于Hi3516DV300rtmp交叉编译移植

    基于Hi3516DV300rtmp交叉编译移植 其实自己不太会写甚么博客,或者方法的,所以导致自己开发完一些功能后,后续再去看自己写的代码,去配置相关的功能也好,总是需要花费挺长时间重新回忆起来. 废 ...

  5. 天嵌开发版 imx6 移植qt

    1.环境说明 QT 移植 - 系统: ubuntu 14.04 x64 - 编译器: arm-none-linux-gnueabi-gcc 4.8.3 - QT 5.5.1 2.下载源码 - 下载交叉 ...

  6. Qt + 觸控 移植 – Qt and Touch Screen Porting to SBC6446 with LEOs for DaVinci

    完成了 Qt 接下來就是要讓觸控面板的功能也起來 因為之前有兩篇教學了 所以這篇照片可能會跳的比較快 不懂的話可以回去看看前兩篇的設定 [達文西] 建置開發環境 – Based on EDK6446 ...

  7. 移植Qt程序到surface RT

    移植Qt程序到surface RT 1. 编译Qt库 Surface的操作系统是基于ARM架构的windows RT,所以需要编译出基于相应平台的Qt库. 1.1编译环境 Win8.1操作系统 Vis ...

  8. ubuntu交叉编译移植paho-mqtt-c

    交叉编译移植paho-mqtt-c库 一.环境说明 近期项目需求,在imx6ull上集成MQTT通讯,准备在ubuntu16.04上通过交叉编译工具链arm-linux-guneabihf- (lin ...

  9. ubuntu下移植QT基本流程

    配置tftp 配置tftp服务的步骤: 1.安装相关软件包:tftpd(服务端),tftp(客户端),xinetd sudo apt-get install tftpd tftp xinetd 2.建 ...

最新文章

  1. SAP QM维护检验计划指派取样策略时候报错:Sampling procedure is not permitted for insp.point-related inspection
  2. 危害网站关键词优化的因素如何避免?
  3. python调用C函数库
  4. c语言跑马灯实验报告,单片机跑马灯实验
  5. php包括web前端,web前端包括什么技术?
  6. [HNOI2016]网络(树链剖分+线段树+大根堆)
  7. 阿里云商品评价解析功能示例解析
  8. linux java缓存失效_转载:Linux服务器Cache占用过多内存导致系统内存不足最终java应用程序崩溃解决方案...
  9. django解决页面跳转问题
  10. java.lang.NumberFormatException: For input string:
  11. android 自动更新
  12. 单片机中断函数的编写
  13. 3709: [PA2014]Bohater
  14. Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
  15. python数据分析怎么画_跟小白学Python数据分析——绘制维恩图
  16. 微信扫付款后,付错款,不是好友也能联系到收款方
  17. 手机浏览网页或打开App时莫名弹出支付宝领红包界面的原因及应对措施
  18. getline()函数的几点疑惑
  19. 信息论 | Shannon编码MATLAB实现
  20. origin调整纵坐标刻度值_微教程:Origin怎样调整坐标轴刻度

热门文章

  1. 啥是符号式API,命令式API:TF 2.0两种搭建都支持,该怎么选?
  2. 幸好权健AI还没落地!一个腕表顶中医,18个关键点就能刷脸
  3. 资源丨用PyTorch实现Mask R-CNN
  4. 这是云代驾,不是打游戏
  5. 十年了,斯坦福和CMU的这场对决,开启了无人车时代
  6. Leetcode 1.两数之和
  7. table height 100%问题
  8. 50 招教你防止黑客入侵,适用于入门小白到专业人员
  9. 开机按F1才能进入(启动)系统的解决方案
  10. 如何在DOS下用TCP/IP协议进行登录Windows 2K?