编译Qt arm库并在开发板运行
来源:互联网 发布:淘宝工作室是做什么 编辑:程序博客网 时间:2024/06/06 06:52
Qt的ARM版编译
____________________________________________________________________________________________________________________________________
交叉编译器:buidroot-2012.08
:qt-everywhere-opensource-src-4.6.4.tar.gz
先把准备工作做好!
创建下载目录:/home/lzj/fl2440/3rdparty/qt_install
进入源码目录,添加配置脚本:
#!/bin/sh./configure -prefix /home/lzj/fl2440/3rdparty/qt_install \-release \-shared \-fast \-no-largefile \-qt-sql-sqlite \-no-qt3support \-no-xmlpatterns \-no-mmx \-no-3dnow \-no-sse \-no-sse2 \-no-svg \-no-webkit \-qt-zlib \-qt-gif \-qt-libtiff \-qt-libpng \-qt-libmng \-qt-libjpeg \-make libs \-xplatform qws/linux-arm-g++ \-nomake tools \-nomake examples \-nomake docs \-nomake demo \-no-nis \-no-cups \-no-iconv \-no-dbus \-no-openssl \-embedded arm \-little-endian \-qt-freetype \-depths 16,18 \-no-glib \-qt-mouse-tslib \-no-javascript-jit \-no-script \-no-scripttools \-qt-gfx-transformed \ -qt-gfx-linuxfb \
修改源码:vim /home/lzj/fl2440/3rdparty/qt4_source/qt-everywhere-opensource-src-4.6.4/mkspecs/qws/linux-arm-g++/qmake.conf
# # qmake configuration for building with arm-linux-g++ # include(../../common/g++.conf) include(../../common/linux.conf) include(../../common/qws.conf) QMAKE_INCDIR = /home/lzj/fl2440/3rdparty/ts_install/include QMAKE_LIBDIR = /home/lzj/fl2440/3rdparty/ts_install/lib # modifications to g++.conf QMAKE_CC = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-gcc -lts QMAKE_CXX = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-g++ -lts QMAKE_LINK = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-g++ -lts QMAKE_LINK_SHLIB = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-g++ -lts # modifications to linux.conf QMAKE_AR = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-ar cqs QMAKE_OBJCOPY = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-objcopy QMAKE_STRIP = /opt/buildroot-2012.08/arm920t/usr/bin/arm-linux-strip load(qt_config)上面主要是放你tslib库的路径和你交叉编译器的路径,全用绝对路径!(血的教训)
不然会出现下面错误:
The tslib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR and QMAKE_LIBDIR in
vim /home/lzj/fl2440/3rdparty/qt4_source/qt-everywhere-opensource-src-4.6.4/src/gui/itemviews/qabstractitemview.cpp
将'Key_BackSpace' 更改为将'Key_Backspace'
不然就是这个错误:
itemviews/qabstractitemview.cpp:2311: error: 'Key_BackSpace' is not a member of 'Qt'
如果你出现了下面这个错误:The specified system/compiler is not supported:
解决方法是:
cd ~
vim ./bash_profile
export MKSPECS=/home/lzj/fl2440/3rdparty/qt4_source/qt-everywhere-opensource-src-4.6.4(就是你qt源码目录)
____________________________________________________________________________________________________________________________________
OK已经移植好了,再把qmake放到你的usr/local/bin里面去吧,不然找不到这个命令,或者你自己加个路径export
对于程序的编译只需要几步
qmake -project
qmake
make
就可以了
—————————————————————————————————————————————————————————————————————————————
将库移植到开发板,我的选择是将所有库都打包然后sz到电脑,再tftp到开发板,一共3个库,qt的lib ,fonts(这个在qtlib里面有一个文件夹),还有就是tslib(关于tslib的移植看我前面的博客)http://blog.csdn.net/liuzijiang1123/article/details/45670049
然后就是改根文件系统的配置文件。
这个是我的配置文件vim /etc/profile
export PATH=\ /bin:\ /sbin:\ /usr/bin:\ /usr/sbin:\ /usr/local/bin:\ /apps/bin:\ /apps/tools:\ /apps/tslib/bin\ export PS1='\w >: ' export USER=`id -un` export LOGNAME=$USER export HOSTNAME=`/bin/hostname` export HISTSIZE=500 export HISTFILESIZE=500 export PAGER='/bin/more ' export EDITOR='/bin/vi' export INPUTRC=/etc/inputrc export network_cfg_dir=/apps/etc/network export LD_LIBRARY_PATH=/lib:/usr/lib:/apps/tslib/lib:/apps/qtlib:/apps/fonts export network_cfg_dir=/apps/etc/network #touch screen tslib setting export TSLIB_ROOT=/apps/tslib export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf export TSLIB_TSDEVICE=/dev/event1 export QWS_MOUSE_PROTO=TSLIB:/dev/event1 export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal export QTLIB=/apps/qtlib export QT_QWS_FONTDIR=/apps/fonts ### Some aliases alias vim='vi' alias ll='ls -l' alias l.='ls -d .*' alias df='df -h'
如果运行程序的时候还是找不到库,那么就手动把这个库放到/lib下就行
里面的event1是你触摸屏的event.你可以cat /dev/event1 在屏幕上乱按,只要有乱码输出则表示是触摸屏的event,有的可能是event0
如果你qt程序运行点鼠标点了没用的话,就是下面这2个环境变量没设置对
export QWS_MOUSE_PROTO=TSLIB:/dev/event1
export TSLIB_TSDEVICE=/dev/event1
如果你的Qt在PC上显示和开发板上显示大小不一样的话:
export QWS_SIZE=480x272//这句可以将开发板的屏幕参数传递给Qt程序,然后就可以在Qt中正确设置窗口大小了
如何还有这个错误:QFontDatabase: Cannot find font directory /home/lzj/fl2440/3rdparty/qt_install/lib/fonts - is Qt installed correctly?
Aborted
解决方法:
export QT_QWS_FONTDIR=/apps/fonts
OK!最后运行的时候敲 ./a.out -qws 为什么要加-qws大家可以去了解一下,如果想打印中文的话
./a.out -qws -font wenquanyi
虽然看起来就这几步,可以我真的是花了好久,网上看了好多,然后都有差,最后能实现我真是日了狗!昨天看了肖申克的救赎,希望还是要有的!!!!
贴上图片:
- 编译Qt arm库并在开发板运行
- 【ARM-Linux开发】【Qt开发】Qt Creator自定义编译运行步骤
- 如何在ARM开发板的嵌入式linux系统上运行的QT程序
- QT程序,如何在ARM板上运行
- ubuntu 交叉编译qt 5.7 程序到 arm 开发板
- qt在开发板上运行的环境编译的搭建
- 交叉编译能在arm平台上运行的Qt应用程序的步骤
- 移植qt库到arm开发板上 并测试 简单qt_ARM程序
- 在ARM开发板的嵌入式linux系统上运行的QT程序,必须得要在linux里用QT编吗
- 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案
- lua 交叉编译在arm上运行
- 让QT跑在ARM开发板上
- QT程序怎么移植到开发板并运行
- QT程序移植到开发板并运行 解决方案
- 从零开始移植QT4.8.5之四--交叉编译QT程序并运行在OK6410上
- live555在arm linux下的交叉编译,并下载的Arm板播放H264文件
- live555在arm linux下的交叉编译,并下载的Arm板播放H264文件
- 编译生成ARM上可运行的Qt程序
- 为你的Android App实现自签名的 SSL 证书
- 【欧拉函数】【二分】【欧拉函数模板】
- 求解一个字符串的所有排列 java实现
- windows下安装node.js及less
- Struts2 单文件上传
- 编译Qt arm库并在开发板运行
- 稀疏矩阵ADT_SeqTriple
- JAVA基础--db17_javaMap集合_集合框架工具类
- Max Points on a Line
- 面试算法题
- 安卓控件使用系列1:TextView显示各种格式的文本
- Struts2 多文件上传
- socket套接字编程函数
- JavaScript之浏览器兼容问题