QT程序,如何在ARM板上运行
qt交叉编译arm linux程序

qt交叉编译arm linux程序-概述说明以及解释1.引言1.1 概述引言部分,概述部分内容:QT交叉编译是指在一台主机上使用QT开发环境,将程序编译为在不同操作系统或硬件平台上运行的可执行文件。
而ARM Linux是一种基于ARM架构的开源操作系统,在嵌入式系统领域广泛应用。
本篇文章将介绍如何使用QT开发环境进行交叉编译,将程序编译成可以在ARM Linux 平台上运行的程序。
本文将从整体上介绍QT交叉编译的概念和原理,以及ARM Linux 平台的基本知识。
然后,我们将详细介绍如何搭建QT交叉编译环境,并给出一步一步的操作步骤。
最后,我们将总结整篇文章的内容,并展望QT交叉编译ARM Linux程序的意义和应用前景。
通过本文的学习,读者将能够了解QT交叉编译的基本原理和步骤,具备搭建QT交叉编译环境的能力,并能够将编写的程序成功地交叉编译为可以在ARM Linux平台上运行的程序。
这对于需要在嵌入式系统中进行开发的工程师和开发者来说,具有重要的实际意义。
然而,本文还存在一些不足之处,例如在具体步骤的讲解中可能存在一些细节问题,还有一些更高级的主题未能深入探讨。
因此,我们对本文的改进方向也进行了一定的展望,希望能够进一步完善和拓展相关内容。
总之,通过本文的学习,读者将能够掌握QT交叉编译ARM Linux 程序的基本知识和技能,为嵌入式系统的开发和应用提供了一定的参考和指导。
希望本文对读者有所帮助,并能够引起更多对此领域的关注和研究。
1.2 文章结构文章结构部分的内容是对整篇文章的组织和框架进行介绍。
通过明确文章的结构,可以帮助读者更好地理解文章内容和主要观点的呈现方式。
在本文中,文章结构包括以下几个方面:1. 引言:介绍本篇文章的背景和意义,以及总结文章的主要内容。
2. 正文:主体部分,详细介绍QT交叉编译ARM Linux程序的相关知识和步骤。
- 2.1 QT交叉编译概述:介绍QT交叉编译的基本概念、原理和应用领域。
ARM开发软件使用教程

ARM开发软件使用教程
二、工程创建
安装完成后,打开ARM开发软件,点击“新建工程”按钮。
在弹出的
对话框中,选择工程类型和工程名称,并选择工程保存的目录。
点击“确定”按钮完成工程创建。
三、代码编写
四、编译调试
五、调试工具
ARM开发软件提供了强大的调试工具,包括调试器、仿真器等。
通过
调试工具可以实时监测程序的运行状态、寄存器的值、内存的使用情况等。
在调试过程中,可以使用调试工具进行断点设置、变量监视等操作,以辅
助调试工作。
六、调试技巧
ARM开发软件的调试过程中,可以使用一些技巧提高调试效率。
比如,使用断点进行程序的停留,通过查看寄存器的变化情况来分析程序的运行
状态。
还可以使用观察窗口实时监测变量的值,通过调试输出窗口打印调
试信息等。
七、其他功能
除了上述基本功能外,ARM开发软件还提供了其他一些功能,如性能
分析、代码优化等。
性能分析功能可以帮助开发者找出程序的性能瓶颈,
对代码进行优化改进。
代码优化功能可以将代码进行优化,提高程序的执
行效率。
总结:。
QT5静态编译工程(arm交叉编译)

QT5静态编译⼯程(arm交叉编译)1、⾸先,QT编译环境默认是动态库,要编译静态程序是不可能的,所以要下载QT源码,重新编译QT编译环境2、下载QT源码(5.13版本):http://download.qt.io/development_releases/qt/5.13/5.13.0-rc/single/qt-everywhere-src-5.13.0-rc.tar.xz3、编译QT前需先配置交叉编译器: 解压源码后,进⼊源码的qtbase/mkspecs/linux-arm-gnueabi-g++⽬录,编辑⾥⾯的qmake.conf⽂件: 将⽂件⾥的arm-linux-gnueabi-都改为你⽤的交叉编译器(带路径,如果不带路径则需设置好PATH变量)⽐如改为:arm-linux-gnueabihf-4、⽤静态⽅式编译并安装QT 在源码⽬录下执⾏如下命令: ./configure -v -prefix /home/wch/Qt-5-arm -static -release -opensource -confirm-license -xplatform linux-arm-gnueabi-g++ -no-accessibility -no-dbus -no-openssl -no-opengl -no-glib -no-iconv -no-xcb -no-pch -no-compile-examples -no-pkg-config -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -skip qtwayland make make install 其中/home/wch/QT-5-arm是安装⽬录,根据你的情况指定;-static是指定为静态编译;-xplatform linux-arm-gnueabi-g++是说明⽬标平台是arm,其它参数根据⾃⼰的情况⾃⾏修改,各参数的含义可以⽤./configure --help命令查看 经过上⾯三步,就在指定的/home/wch/QT-5-arm⽬录下⽣成的QT的编译环境,该环境的bin⽬录下有qmake程序。
基于Qt/Embedded的ARM—Linux应用程序研究

3 ・ 3
维普资讯
基于 Q E bde A M—I u m edd的 R . x应用程序研 究 i n
可以对源 码 进 行 修 改 和 剪 裁 以适 应 自己特 定 的应 用 , 以 出现 了很 多 种 面 向嵌 入 式 应 用 的 Lnx 有 所 iu, R]nxU Lnx 还 有 目前 可 以支持 面 向 A M 核 的 1ju , C i , L u R Lnx操 作 系 统 A i x A M i x支 持 多种 iu M R Ln 。 R Ln u u
A M 芯片, R 带有大部分通用设备的驱动, 比如键盘、
鼠标 、S U B接 口等 , 开发者 只需专注 于开发 自己系统 特定 驱 动 , 即可使 整 个 系统正 常运行 , 大缩短 了开 大 发周 期 , 降低 了开发 的复杂度 。 3 Q/ m edd进 行应 用开发 的流 程 tE bde
线和 串口线相连, 最终在 主机上把应用程序编译成 A M格 式的二进制文件通过 网线或 串口传输到 目 R
标板 上运行 。 主机 与 目标 板 的连接 图如 图 2所 示。 开发环境 构 建 所 需 软 件 开 发 包 有 :nx内核 , lu i
l u 一2 4 2 一e s i x . . 1 l 一1—4—3 t ; R 交 叉 编 译 n m . rA a M
收 稿 日期 "06—0 —2 20 6 5
可从 网上下载。把这些软件包解压安装 , 在安装 时,
应配置两套开发环境, 一种是 A M 体系的, R 另一种 是 X 6体 系的 , 通过设 置 cngr 的参数 完成 。 8 这 of u i e后
作者简介 : 李佳林(90 6一)男 , 18 . , 在读硕士研究生 ; 主要研究方 向: 微机控制技术与应用。
迅为imx6开发板QT系统移植FFmpeg移植到ARM开发板和测试

迅为imx6开发板QT系统移植FFmpeg移植到ARM 开发板和测试
尺寸:51mm*61mm
四核商业级-2G:四核 i.MX6Q,主频 1 GHz;内存:2GB DDR3;存储:16GB EMMC;SATA接口:支持
双核商业级-1G:NXP 双核精简版 i.MX6DL,主频 1GHz ;内存:1GB DDR3;
存储:8GB EMMC;SATA接口:不支持
四核工业级-1G :NXP 四核 i.MX6Q,主频 800MHz;内存:1GB DDR3;
存储:8GB EMMC;SATA接口:支持
四核Plus版本:NXP 四核 i.MX6Q,主频 1 GHz;内存:2GB DDR3;存储:16GB EMMC;SATA接口:支持
EEPROM:4MB的EEPROM用来存储关键数据
:内部自立
工作:5V 系统支持:4.4.2/6.0系统 + Qt4.7/5.7系统 12.04/16.04/20系统商业级运行温度:0℃到+70 ℃
工业级运行温度:-40℃到+85 ℃
引角扩展:引出脚多达320个,满足用户各类扩展需求
扩展参数:
千兆以太网:1路自适应千兆以太网
EIM通用: 32位数据线全引出
SDIO:3路
JTAG:1路引出(注:邮票孔底板不支持)
SATA:1路
CAMARA:DVP和MIPI接口全引出
:双路LVDS和24位RGB接口
:1路V1.4
GPIO:引出
第1页共3页。
Fedora9 下搭建Qt Creator的ARM开发环境并移植Qt4.6.3-books到mini2440

到/downloads-cn下载最新版的软件包,当前是:
1、用于 Linux/X11 32位 的 Qt Creator 2.0.0 二进制软件包Qt SDK for Linux/X11 32-bit** (371 MB)( /qtsdk/qt-sdk-linux-x86-opensource-2010.04.bin)
-no-opengl \
-no-cups \
-no-glib \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake docs \
# make
# make install
我下载的包解压后没有configure文件,需要运行autogen.sh后才能生成。
9、进入qt-everywhere-opensource-src-4.6.3-arm目录编译安装
首先先配置:
注:必须加上“-prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm ”参数, 不然安装后不在QtEmbedded-4.6.3-arm文件夹下,而是覆盖了QtEmbedded-4.6.3。
1234 dev lib opt sbin usr
Settings etc linuxrc proc sys var
bin home mnt root tmp www
5. 编译 PC 版:
进入pc目录
#./configure
# gmake
# gmake install
移植QT5.6到嵌入式开发板(史上最详细的QT移植教程)

移植QT5.6到嵌⼊式开发板(史上最详细的QT移植教程)⽬前⽹上的⼤多数 QT 移植教程还都停留在 qt4.8 版本,或者还有更⽼的 Qtopia ,但是⽬前 Qt 已经发展到最新的 5.7 版本了,我个⼈也已经使⽤了很长⼀段时间的 qt5.6 for windows ,本⽂就来介绍⼀下QT在嵌⼊式环境的搭建。
移植以到 JZ2440 为例,使⽤韦⽼⼤提供的 ubuntu9.10 虚拟机作为移植环境。
当然,其它虚拟机也是可以的,我同样在 ubuntu14.04 移植成功,只不过需要额外装⼀些库,后⾯我会简单提及。
此外,我尝试使⽤ 4.3.2 版本的交叉编译⼯具编译 Qt5.6 ,编译过成功很多错误,编译成功之后使⽤ qt 编译应⽤程序时也存在问题,因此我是⽤的是友善提供的 4.4.3 版本的交叉编译⼯具。
建议新⼿使⽤与我相同的编译环境。
因为我们更换了编译⼯具,因此,我们有接下来的4个⼯作。
1、重新编译内核2、制作⽂件系统3、移植tslib4、移植qt⼀、更换交叉编译器⾸先,将下载好的⽂件全部放在 /work ⽬录下1、解压交叉编译器sudo tar zxvf arm-linux-gcc-4.4.3.tar.gz -C / #展开在根⽬录ls /opt/FriendlyARM/toolschain/4.4.3/bin #检查是否⽣成了编译⽬录2、设置环境变量sudo vi /etc/environment将现在原有的交叉编译器路径替换为我们新解压的交叉编译器,举例:1. #PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin"//注释2. PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/FriendlyARM/toolschain/4.4.3/bin" //增加后期测试时我发现这⾥是有问题的,由于我的安装⽬录都指定的是 usr ⽬录,需要 root 权限,然⽽在 environment 中设置的环境变量导致使⽤ root 权限 make install 过程中出现了个别的 command not found ,于是我将环境变量放到了 /etc/profile 中,这个⽂件是对所有⽤户⽣效的。
arm qt编译步骤

在使用ARM架构上编译Qt应用程序的过程中,你需要使用交叉编译工具链,该工具链能够生成适用于ARM处理器的可执行文件。
以下是通用的ARM架构上Qt 应用程序的编译步骤。
请注意,具体的步骤可能会因为Qt和工具链的版本而有所不同,因此请参考你使用的具体版本的Qt和工具链的文档。
步骤:1. 安装交叉编译工具链:首先,你需要安装适用于ARM架构的交叉编译工具链。
这个工具链包括编译器、链接器等工具,用于生成ARM平台上的可执行文件。
工具链的获取和安装方法取决于你的目标平台,你可能需要从交叉编译工具链的官方网站或者嵌入式 Linux 发行版的软件包管理器中获取。
2. 获取Qt源代码:你可以从Qt的官方网站上下载Qt的源代码。
确保下载的是适用于你目标ARM平台的版本。
3. 配置Qt编译环境:解压下载的Qt源代码,并进入源代码目录。
然后运行configure脚本,配置Qt编译环境。
在这一步,你需要指定交叉编译工具链的路径,并设置一些其他选项,如目标设备的架构和操作系统等。
请根据实际情况替换<device>和/path/to/cross-compiler。
4. 编译Qt:运行make命令,开始编译Qt。
这个过程可能会花费一段时间,具体取决于你的机器性能和编译选项。
5. 安装Qt:编译成功后,运行make install命令,将Qt安装到指定目录。
6. 编译你的Qt应用程序:现在你已经成功编译并安装了Qt库,接下来你可以使用交叉编译工具链来编译你的Qt应用程序。
这里的your_project.pro是你的Qt项目文件。
请注意,这些步骤是一个通用的概述,具体的步骤和参数可能会根据你的环境和需求而有所不同。
确保查阅Qt文档和交叉编译工具链的文档以获取更详细的信息。
qtcreator单步调试嵌入式arm程序的方法

qtcreator单步调试嵌入式arm程序的方法前言该方法配置步骤为:(1)安装gdb-multiarch。
(2)在qtcreator中配置gdb-multiarch。
(3)启动板子上的gdbserver。
(4)将qtcreator连接到板子上的gdbserver,启动单步调试。
1.安装gdb-multiarch使用“sudo apt-get install gdb-multiarch”命令安装gdb-multiarch。
安装完如图1所示。
图12.在qtcreator中配置gdb-multiarch在qtcreator中添加gdb-multiarch步骤如下。
在[工具]-[选项]中,在[Debuggers]页面中,添加gdb-multiarch,如图2和图3所示。
图2图3在[构建套件(kit)]页面中,添加gdb-multiarch对应的调试器,如图4所示。
图43.在板子上启动gdbserver将要调试的程序拷贝到板子上,如图5所示。
图5用如下指令,启动gdbserver。
gdbserver 172.24.119.123:8888 /tmp/only_only_test172.24.119.123是虚拟机的IP地址。
8888是选取的一个通信端口。
/tmp/only_only_test是板子上要调试的程序。
如图6所示。
图64.qtcreator连接gdbserver单步调试首先,确保虚拟机与板子能互相ping通,如图7所示。
图7然后,在虚拟机的qtcreator中,用Debug模式编译程序,如图8所示。
图8在虚拟机中的qtcreator中,点击[调试]-[开始调试]-[Attach to Running Debug Server...]。
参考图9进行设置。
图9设置中:✧本地执行档:虚拟机中待调试程序的存在位置。
✧Override server channel: IP地址为板子IP地址,端口号为gdbserver启动时指定的端口号。
qt程序移植到arm开发板

qt程序移植到arm开发板1、安装交叉编译⼯具链arm-linux-gcc●复制arm-linux-gcc-4.4.3.tar.gz到/home/tools⽂件夹⾥●解压命令tar xvzf arm-linux-gcc-4.4.3.tar.gz -C / (解压⽂件到根⽬录下)注意以上命令必须要有-C⽽且是⼤写,后边有个空格也要注意。
注意查看解压的路径,将解压⽣成的⽂件移动到usr/local/arm⽬录下●vi /etc/profile●在⽂件的末尾加上PATH=/usr/local/arm/4.4.3/bin:$PATH●输⼊命令:source /etc/profile(使刚修改的⽂件⽴即⽣效)●查看arm-linux-gcc版本arm-linux-gcc -v注意:此⽅法只对当前登录⽤户有效,更换⽤户后修改当前登录⽤户/etc/profile即可2、tslib编译与安装tslib是电阻式触摸屏⽤于校准的⼀个软件库,是⼀个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应⽤提供了⼀个统⼀的接⼝。
因此这⾥先编译安装tslib,这样在后⾯编译Qt的时候才能打包编译进去。
●需要检查⼀下软件是否安装sudo apt-get install automakesudo apt-get install autogensudo apt-get install autoconf●确定以上⼯具都已经安装后,复制tslib-1.4.tar到/home/tools⽂件夹⾥tar -zxvf tslib-1.4.tar.gzcd tslib./autogen.sh./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/usr/local/tslibmakemake install-prefix=/usr/local/tslib是指定安装路径,其实包括下⽂的安装配置,路径都可以不指定,默认就是安装到/usr/local/⽬录下若出现错误:configure.ac:25: error: possibly undefined macro: AC_DISABLE_STAT ICIf this token and others are legitimate, please use m4_pattern_al low.See the Autoconf documentation.configure.ac:26: error: possibly undefined macro: AC_ENABLE_SHARE Dconfigure.ac:27: error: possibly undefined macro: AC_LIBTOOL_DLOP ENconfigure.ac:28: error: possibly undefined macro: AC_PROG_LIBTOOL autoreconf: /usr/bin/autoconf failed with exit status: 1解决⽅法:apt-get install libtool3、Qt的交叉编译与安装和PC平台下的编译类似,通过运⾏./configure进⾏配置⽣成makefile⽂件,然后编译安装,只是因为是针对嵌⼊式平台需要进⾏⼀些针对性配置,这⾥⽣成⼀个⾃动配置⽂件,可以通过修改⽂件来⽅便的更改配置。
移植qtopia到ARM开发板

内核运行之前运行的一小段程序 ,通过这 小段程序我们可以初始化硬件设备 ,建立 内存 空 间 的映 射 图 ,从 而 将 系统 的软 硬 件 环境带到一个合适 的状态 ,其主要任务是 将内核映像从硬盘读到 A RM中, 然后跳转 在底层摈弃 了 x b 采用 f m b f r( Ⅱ, r euf 帧 到 内核的入 口点去运行 ,即开始启动操作 a e 系统 。在这里所用的 Bo to d r是 U— ola e 缓存 )作为底层图形接 口。 o -1 1 4 同 时 , 将 外 部 输 入 设 备 抽 象 为 bo t . . 。 k y a d和 mo s e bo r u e输入事件 。 QT/ 把U )o— .. . rb2 1 t 1 14 t .z拷到根 目录 o a E e d d 的应用程序可以直接写 内核缓 的¥ C 4 0 解压后生成u b o一1 14 mb d e 3 2 1 中, — o t .. 冲帧 ,这可避免开发者使用繁琐的 Xl / i 目录 ,进入该 目录 ,进行编译 。输入 : b # ma e s k 4 0 c n i k md 2 1 o f g S re 系统 。 ev r 嵌入式软件开发通常都采用交叉编译 # m a c o s C0M PI ke r s — LE=a m - r 的 方式 进 行 , 基于 Q / mb d e ; tpa tE e ddf Q o i l u 一 ( I J i x 由于 已经能够生成路径 , n 如果编译 的 GUI 应用开发也采用这样的模式。先在 不 通 则 输 入 完 整 路 径 :m a k e L u r lc l a m/b n i/ 宿主机上调试应用程序 , 调试通过后 , 经过 j co s COMPI E=/ s / o a/ r r s am—i u ) r l x n 交叉编译移植到 目标 板上 。 Q / mb d e 直接写入帧缓存 , t E e dd 在宿 生 成 U otbn文 件烧 制 到 AR 板 b o .i M 主 机 上 则 是 通 过 q vfb ( rtu a1 . 子 里 。 v i fa b fr rme u e)来模拟帧缓存。q f 是 x窗 J 5 移 植 qo i f vb tpa 口用来运行和测试 Q o i应用程序的系统 tpa 5 I所用 资 源 . 程序。q f 使用 了共享 内存存储区域 ( vb 虚 硬 件 :恒 丰 H FR K2 B ,三 星 4i 0 拟的帧缓存 )来模拟帧缓存并且在一个窗 ¥3 41 ARM 9 0 C2 0 2t QT E e d d / mbd e 通过QtAP I与Ln x iu I O设施直接交互 , / 成为嵌入式 l u 端 口。 i x n 同Q / 比, T/ mb d e 很节省内 t Xl相 1 Q E edd 存, 其不需要 一个X服务器或是 Xi 库 , l b 它
移植Qt5.5到arm开发板(全世界的问题我一个人碰完了)

移植Qt5.5到arm开发板(全世界的问题我一个人碰完了)展开全文https:///qq_41399894/article/details/8647547 2前面安装Qt的步骤就不说了,下载好一路next就可以了,接下来一、首先要移植Qt必须要用到Qt的源码,在这里也是用Qt5的源码来移植。
源码可以在/archive/qt/下载,选择文件qt-everywhere-opensource-src-5.5.0.tar.gz下载。
2、把下载好的文件放在ubutun的/myTools/Qt/目录下,执行命令 tar zxvf qt-everywhere-opensource-src-5.5.0.tar.gz 来解压,解压完成后就会看到 qt-everywhere-opensource-src-5.5.0 目录。
3、接着就是开始进行编译的工作了。
首先进去目录/myTools/Qt/qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/linux-arm-gnueabi-g++ ,在这个目录下回看到qmake.conf文件,我们需要修改这个文件。
vim qmake.conf#qmake configuration for building with arm-linux-gnueabi-g++#MAKEFILE_GENERATOR = UNIXCONFIG += incrementalQMAKE_INCREMENTAL_STYLE = sublibQT_QPA_DEFAULT_PLATFORM = linuxQMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a // march是处理器架构,我的是armv7-aQMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-ainclude(../common/linux.conf)include(../common/gcc-base-unix.conf)include(../common/g++-unix.conf)#modifications to g++.confQMAKE_CC = arm-none-linux-gnueabi-gccQMAKE_CXX = arm-none-linux-gnueabi-g++QMAKE_LINK = arm-none-linux-gnueabi-g++QMAKE_LINK_SHLIB =arm-none-linux-gnueabi-g++# modifications to linux.confQMAKE_AR = arm-none-linux-gnueabi-ar cqsQMAKE_OBJCOPY =arm-none-linux-gnueabi-objcopy QMAKE_NM = arm-none-linux-gnueabi-nm -PQMAKE_STRIP = arm-none-linux-gnueabi-stripload(qt_config)如果这里.对芯片的指令集没有选择好QT_QPA_DEFAULT_PLATFORM = linuxQMAKE_CFLAGS_RELEASE += -O2 -march=armv7-aQMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a在开发板运行过程中,运行有提示:Illegal instruction (非法指令)这里要注意,每个人的交叉编译器的前缀都是不一样的,我的就是arm-none-linux-gnueabi-,需要注意还有就是如果你有多个交叉编译器,那么这里你要设置为绝对路径然后去解压目录下,即是/myTools/Qt/qt-everywhere-opensource-src-5.5.0/,每个人存放的目录都不要,这里我是直接运行./configure -prefix /opt/qt-5.5 -release -opensource -xplatform linux-arm-gnueabi-g++ -no-opengl这里你会发现,在运行结束后,会提示你需要你添加一句qreal float的意思,xplatform linux-arm-gnueabi-g++ -no-opengl -qreal float 我加上了之后,重新运行,提示我们make和make install,我make了之后Project ERROR: Unknown module(s) in QT: quickMakefile:47: recipe for target 'sub-textureandlight-make_first' failedmake[4]: *** [sub-textureandlight-make_first] Error 3make[4]: Leaving directory '/home/jay/qt-x11/qtcanvas3d/examples/canvas3d/canvas3d'Makefile:42: recipe for target 'sub-canvas3d-make_first' failedmake[3]: *** [sub-canvas3d-make_first] Error 2make[3]: Leaving directory '/home/jay/qt-x11/qtcanvas3d/examples/canvas3d'Makefile:42: recipe for target 'sub-canvas3d-make_first' failedmake[2]: *** [sub-canvas3d-make_first] Error 2make[2]: Leaving directory '/home/jay/qt-x11/qtcanvas3d/examples'Makefile:69: recipe for target 'sub-examples-make_first' failedmake[1]: *** [sub-examples-make_first] Error 2make[1]: Leaving directory '/home/jay/qt-x11/qtcanvas3d' Makefile:349: recipe for target 'module-qtcanvas3d-make_first' failedmake: *** [module-qtcanvas3d-make_first] Error 2这里的错误现象是百度复制过来的的,因为我编译成功了,不想卸了重装,但是问题大概就是这样,这个解决方法:你可以忽略它所找不到的,在后面加上xplatform linux-arm-gnueabi-g++ -no-opengl -skip qt3d -skip qtcanvas3d -nomake examples -skip qtdeclarative -no-icon 看到这个 -no-iconv,如果没有设置它,当你运行qt程序的时候,会出现QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failedQIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed所以一定要加上,如果你忘了添加,就(1) 下载链接:/gnu/libiconv/(2) 配置并安装安装./configure --prefix=/home/chy/out --host=arm-none-linux-gnueabi-gccmakemake install(3) 复制preloadable_libiconv.so到开发板的/lib目录,并配置在/etc/profile添加export LD_PRELOAD=/lib/preloadable_libiconv.so先make clean,清除之前生成的,再make,后面会出现就会出现../../include/QtCore/../../src/corelib/tools/qbytearray.h:98:19: note: the mangling of 'va_list' has changed in GCC 4.4 make[3]: *** [.obj/qpdf.o] 错误 1make[3]: *** 正在等待未完成的任务....make[3]:正在离开目录`/myTools/Qt/qt-everywhere-opensource-src-5.5.1/qtbase/src/gui'make[2]: *** [sub-gui-make_first] 错误 2make[2]:正在离开目录`/myTools/Qt/qt-everywhere-opensource-src-5.5.1/qtbase/src'make[1]: *** [sub-src-make_first] 错误 2make[1]:正在离开目录`/myTools/Qt/qt-everywhere-opensource-src-5.5.1/qtbase'make: *** [module-qtbase-make_first] 错误 2这里是因为前面提示我们添加-qreal float,而添加了之后就出现了这个问题相对文件是Qt源代码。
Qt-WinCE 在arm平台上搭建及程序自启动

Qt-WinCE 在armv4i平台上搭建及程序自启动全解编译步骤●Qt 嵌入式环境的搭建的准备1.首先,下载Qt的嵌入式开发包qt-embedded-wince-opensource-src-4.4.0.zip2.然后,下载VS2005和vs补丁VS80sp1-KB926604-X86-CHS.exe。
3.最后,下载一个嵌入式开发的SDK,如STANDARD_SDK.msi(可以根据自己平台的SDk,进行安装,如up_tech.pxa270.sdk.msi 2410mini_SDK.msi)4.还有一个是同步的软件 Microsoft ActiveSync4.5中文简体版,win7貌似需要6.0以上。
5.具体也可以看Qt 文档提供的Qt for Windows CE Requirements●编译安装1.首先安装VS2005,很简单,按照向导来,在自定义安装中务必选择“智能设备开发”。
2.关于Microsoft ActiveSync4.5的安装更是简单。
在此不再多说!3.然后,安装Windows Mobile或是其它版本的SDK,可以用自定义的SDK!简单,这里我们采用up_tech.pxa270.sdk.msi4.接下来的就是qt-embedded-wince的安装。
具体也而已看qt-embedded-wince软件解压后里面的安装文档INSTALL,这里面都集体了介绍安装的步骤,其实很简单的。
5.参照下面的步骤:解压,将解压后的文件夹放到一个不含空格的路径中,如我的:D:\Qt_WinCE即为此文件夹。
Pxa270开发板参照下面的步骤:解压,将解压后的文件夹放到一个不含空格的路径中,如我的:D:\Qt_WinCE,Qt_WinCE即为此文件夹。
在D:\Qt_WinCE\mkspecs ,下面,新建一个文件夹,名字改为wince50pxa270-armv4i-msvc2005将wince50standard-armv4i-msvc2005下面的文件复制到文件夹wince50pxa270-armv4i-msvc2005下,同时修改qmake.conf文件,将CE_SDK = STANDARDSDK_500CE_ARCH = ARMV4I改为CE_SDK = pxa270CE_ARCH = ARMV4I设置环境变量:右键“我的电脑”->“属性”->点“高级”标签->“环境变量”选项set PATH= D:\qt-everywhere-opensource-src-4.6.3\binset QMAKESPEC = win32-msvc2005set QTDIR= D:\qt-everywhere-opensource-src-4.6.3接下来就是开始执行configure 的命令,在“开始”->“程序”->Microsoft visual studio ->Microsoft visual stdio tools->Microsoft visual studio 命令行工作区,进去qt的解压目录D:\Qt_WinCE\。
Qt5 on ARM platforms

Qt5 on ARM platforms - Introduction Qt5 ARM平台移植#################################################### Introduction:This short post covers the background of Qt5, architectural details, configuring for eglfs with Graphics drivers, building, and known issues. This is to be used for porting Qt5 on ARM based platforms这篇短文的内容涵盖了Qt5的背景,结构以及显卡驱动eglfs的配置,还有编译构建等方面。
这些内容都是移植Qt5到ARM平台所需要的。
##注释:Qt5.0.2以后采用了QPA插件作为跨平台,也就是说新版本中qws已经无效了。
例如执行程序不再是./Hello –qws 而是 ./Hello –platform linuxfbQPA插件将不同硬件平台的图形显示底层抽象化,通常在mac上是cocoa, 在window上是windows, 在linux X11下是xcb, 如果有OPENGL支持, 那么选eglfs.对于无硬件加速的设备, 选择linuxfb, minimal仅仅是让程序跑通, 不起任何作用如图:可在qmake.conf配置文件中用QT_QPA_DEFAULT_PLATFORM指明图形程序实际运行的开发板是无硬件加速linuxfb平台。
1Qt5.2 (standalone) and QtWebEngine(preview) build steps available now at :/node/31########################################################## ######Qt5.2和QtWebEngine的构建步骤在此网站Qt5.2 and QtWebEngine build summary on ARM platformsQt5.2 rc1 can be cross compiled for ARM with OpenGLES2 support, with sgxconfiguro (s:github/prabindh/sgxconfiguro). The steps below outline this method.Qt5.2 rc1进行ARM交叉编译时需要有OpenGLES2的支持2(qt5.2在为ARM配置configure时如果没有加入-opengl es2选项编译,即便configure成功,在make后仍旧会报出缺少quick模块的错误。
编译ARM平台的QtEmbedded的MySQL插件和移植MySQL

编译ARM平台的QtEmbedded 的MySQL插件和移植MySQL到ARM开发板经过几天的努力,终于交叉编译出了arm平台所需Qt/E的MySQL插件(驱动),其中顺便把MySQL也移植到了mini2410的开发板上。
编译器:arm-linux-gcc (4.3.2)Pc平台:red hat由于mysql 本身并不支持交叉编译,所以编译过程相对复杂,且各版本有所不同,本文针对mysql-5.1.32。
1、准备工作首先在/home/bjwlxy目录下解压mysql-5.1.32.tar.gz,得到mysql-5.1.32,进入目录运行如下命令:# ./configure --prefix=/usr/local/mysql# make然后将其改名为mysql-pc 备用。
(注意不要# make install)2、Configure再次解压mysql-5.1.32.tar.gz,得到mysql-5.1.32,进入目录,修改configure文件# vi configure注释以下代码:21948 #if test "$cross_compiling" = yes; then21949 # { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&521950 #$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}21951 #{ { $as_echo "$as_me:$LINENO: error: cannot run test program whilecross compiling21952 #See \`config.log' for more details." >&521953 #$as_echo "$as_me: error: cannot run test program while cross compiling21954 #See \`config.log' for more details." >&2;}21955 # { (exit 1); exit 1; }; }; }21956 #else22025 #fi30317 # if test "$cross_compiling" = yes; then30318 # { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&530319 #$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}30320 #{ { $as_echo "$as_me:$LINENO: error: cannot run test program whilecross compiling30321 #See \`config.log' for more details." >&530322 #$as_echo "$as_me: error: cannot run test program while cross compiling30323 #See \`config.log' for more details." >&2;}30324 # { (exit 1); exit 1; }; }; }30325 #else30408 #fi保存退出。
QT完全手册

成虚拟缓冲帧工具qvfb,并支持4,8,16,32位的显示颜色深度。另外我们也可以在
configure的参数中添加-system-jpeg和gif,使Qt/Embedded平台能支持jpeg、gif
在Linux命令模式下运行以下命令:
tarxfzTMAKEDIR=$PWD/
exportTMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
exportPATH=$TMAKEDIR/bin:$PATH
2.安装Qt/
在Linux命令模式下运行以下命令:
exportQTDIR=$PWD
在Qt的组件中,不仅定义了常用的成员变量和成员函数,还定义了所有与该组件相关的Signal和Slot。
要将组件组合起来,最简单的方法就是使用QtDesigner。首先要启动QtDesigner,在Linux命令模式下,键入以下命令(假设Qt安装在/usr/local下):
cd
然后新建一个QFrame,将自己需要的组件直接拖拉到这个Frame中,相信很多人都有过这样的经历,此处就不再详细描述了。完成之后存盘时,会将这个新的组件保存为一个扩展名为.ui的文件。假设所存的文件名为,用来查看这个文件,发现这是一个用xml语言写的一个文本。下面用这个生成相应的和。同样还是在这个目录下,可以看到一个uic的工具,这个是Qt专门用来将ui文件生成.h和.cpp文件的,在终端模式下键入以下命令:
Qt/Embedded开发环境建立的过程:
(这些软件可以免费从trolltech的WEB或FTP服务器上下载)
◆或更高版本;(生成Qt/Embedded应用工程的Makefile文件)
qt5移植到ARM平台的记录

1.从/downloads下载qt source code, 当前最新版本5.0.0.解压后放到Work/rootfs目录下, 重新命名为qt-<d.d.d>2. 修改qtbase/mkspecs/linux-arm-gnueabi-g++下的qmake.conf里的路径, 并添加:QT_QPA_DEFAULT_PLATFORM = linuxfbQMAKE_CFLAGS_RELEASE += -O2 -march=armv5teQMAKE_CXXFLAGS_RELEASE += -O2 -march=armv5teQT_QPA_DEFAULT_PLATFORM是必须的, 通常在mac上是cocoa, 在window上是windows, 在linux X11下是xcb, 如果有OPENGL 支持, 那么选eglfs.对于无硬件加速的设备, 选择linuxfb, minimal仅仅是让程序跑通, 不起任何作用(看不到界面).QPA是QT platform abstraction的缩写3. 添加编译器路径:export PATH=/opt/arm-<year>.<month>/bin:$PATH4. 查看configure的help./configure-xplatform linux-arm-gnueabi-g++ -help>config.help 不加xplatform选项会找不到make.*表示默认使能, +表示要评估.5. 配置./configure -xplatform linux-arm-gnueabi-g++ \-release \-opensource -confirm-license \-make libs \--prefix $PWD/_install \-no-c++11 (此项不加编译出错:atomic_0.h上)看打印信息是否与设备对应, 不对应的话手动使能/禁止一些设定.设定可以参考上面的help来做改动, 设定改动必须先清除config信息: make confclean6. 编译makemake install7. 路径设置export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/plugins (对应qtbase/plugins目录)export QT_QPA_PLATFORM=linuxfb:tty=/dev/tty0export QT_QPA_FONTDIR=/usr/lib/fonts移植时写到/etc/profile中去.8. Tslib整合系统没有自动编译tslib, 需要手动产生Makefile:<path>/qtbase/bin/qmake-o Makefile tslib.proMakefile手动添加tslib的路径(也可以在configure时指定, 不过configure太麻烦):-I/home/jie/Work/rootfs/tslib-1.0/_install/include-L/home/jie/Work/rootfs/tslib-1.0/_install/lib (加在"-lts"前)然后编译:makemake install模块放到$QT_QPA_PLATFORM_PLUGIN_PATH/generic下(其他模块也一样, 如imageformats, 也是对应的建立文件夹放文件)程序运行时加上:-plugin tslib:/dev/event0这里tslib是插件的名称, 见QTsLibPlugin::create, generic模块名必须前加libq后加plugin.另外还有一种方法是export插件:export QT_QPA_GENERIC_PLUGINS=tslib:/dev/event0 (用","分隔不同插件)实际应用中, 程序会找不到当前的视窗, 修改fbconvenience下的代码即可.9. Keypad整合把libqevdevkeyboardplugin.so拷到generic下, 运行时带上:-plugin evdevkeyboard:/dev/event1 (假设keypad是event1)执行的应用程序必须activateWindow, 使得keypad focus落在当前应用程序上.10. 运行错误解决iconv_open failed该问题主要是libc里的iconv函数版本有问题, 需要更新, 具体如下下载/gnu/libiconv/libiconv-1.14.tar.gz./configure -prefix=$PWD/_install -host=arm-none-linux-gnueabimakemake install把_install/lib下的preloadable_libiconv.so拷到系统的/usr/lib下, 加上路径:export LD_PRELOAD=/usr/lib/preloadable_libiconv.sosegmant error首先指定platform时要加上tty=..., 见7. 路径设置其次, 程序有个bug, 修改qlinuxfbscreen.cpp:- ioctl(ttyfd, KDGETMODE, &oldMode);+ ioctl(ttyfd, KDGETMODE, oldMode);。
C++test针对QT项目arm...

C++test针对QT项⽬arm...C++test针对QT项⽬在Linux下arm-none-linux-gnueabi-g++编译器调试总结操作系统:Ubuntu编译环境:QT,arm-none-linux-gnueabi-g++编译器测试⼯具:C++test9.5测试⽬标:单元测试由于是项⽬是arm-none-linux-gnueabi-g++嵌⼊式平台编译器,需要使⽤C++test⾃定义编译器构建可执⾏⽂件,然后将编译好的可执⾏⽂件传到⽬标机运⾏,再将运⾏的结果拷贝到主机平台查看测试结果。
⼀、⾃定义编译器在C++test中选择⽂件-》新建-》其他-》C++test=》⾃定义编译器,分别指定C编译器、C++编译器以及链接器。
如C编译器指定为:/opt/freescale/usr/local/ arm-none-linux-gnueabi-gcc,C++编译器和链接器指定为/opt/freescale/usr/local/ arm-none-linux-gnueabi-g++在⾃定义编译器的时候,最好能记住编译器的存储路径,因为后⾯可能需要再次修改编译器⽂件(c.psrc,cpp.psrc和gui.properties)⼆、修改Build Test Executable - Generic Embedded System测试配置打开测试配置-》Builtin-》Embeded Systems,复制“Build Test Executable –Generic embedded System”到⽤户⾃定义中,选择Execution-》General,编辑测试执⾏流,如下图所⽰:将testLogFile和covLogFile路径设定为当前⽬录,即testLogFile=”./cpptest_results.tlog”covLogFile=”./cpptest_results.clog”如下图所⽰:另外,在执⾏-》符号选项卡下,配置如下图所⽰:注:这⾥不勾选“使⽤来⾃附加的项⽬⽂件的符号”,和勾选“忽略对象/库⽂件”,解决类似如下重复定义问题:/home/gerrit/parasoft/workspace/.cpptest/musicplayer/file-data/AppMes sage.cppca688fcf/adds/harness_AppMessage.o: In function`AppMessage::PostToQueue(int, unsigned int, unsigned int, long)':/media/gerrit/SGME17/SGME17-Project/projects-SGME17/musicplayer/src/m essage/AppMessage.cpp:152: multiple definition of`AppMessage::PostToQueue(int, unsigned int, unsigned int, long)' 三、执⾏遇到-m32(或-m64)问题解决当遇到-m32(或-m64)不识别的问题,需要修改⼀下⾃定义的编译器⽂件(c.psrc、cpp.psrc和gui.properties),将⽂件中的-m32(或-m64)选项删除即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
QT程序,如何在ARM板上运行写这篇文章,主要是为了说明怎么让PC机下编译好的QT程序移植到板子上运行。
在说明之前,我们要了解一个事情,就是QT。
QT是一个跨平台的开发工具,具有很好的移植性,它所依赖的库文件在PC机上和在ARM上是不一样的,那么我要怎么做呢?
很简单,就是重新编译已经写好的QT程序。
为什么需要重新编译,第一,ARM的CPU的指令集和PC的CPU指令集肯定是不一样的,也就是需要交叉编译。
第二:由于QT所依赖的库文件不一样,在不同的指令集得CPU里,库是需要移植的。
我这里假设ARM板的文件系统里已经移植好了QT相关的库文件(具体怎么移植,我会再写一篇文章),移植好后,在开发板上就可以移植QT程序了。
那么,具体我要怎么编译呢?我们都知道,编译好的QT的程序,一般会有几个.CPP\.h文件,这么多的文件我们要怎么样编译。
首先,我们需要安装QT版本的库,一定要注意,这个库文件一定和开发板上的是同一个库。
我们假设这个库名字叫qtembed450-arm。
以下步骤一定要注意:
1.安装目录一定要在“/usr/local/”下;
2.安装成功后,这步非常关键,一定要设置环境变量,而且,我们要设置三个环境变量,这样做有三个目的:①可以在任何路径下用库里的命令②编译时候可以指定编译规则为
arm-linux-g++③编译时候可以指定到所需要的库文件。
那么安装后,输入一下命令:gedit /root/.bashrc.这个命令执行后就进入到设置环境变量的地方,我们要加入以下三个环境变量的设置:
export PATH=$PATH:/usr/local/qtembed450-arm/bin
export
LD_LIBRARY_PATH=$LD_LTBRARY_PATH:/usr/local/qtembed450-arm/lib export QMAKESPEC=/usr/local/qtembed450-arm/mkspecs/default
以上设置非常的重要,非常的关键。
呵呵,先照着设置,具体原因我会细谈。
注意,我编译用的很重要的qmake-arm 命令,就在/usr/local/qtembed450-arm/bin下,可以打开看看哦!环境变量设置好后,用which qmake-arm 命令来确认下是否成功,呵呵。
3.准备工作做到这里,算是进行一半了,哎,真累啊!还要接着写呢。
接下来我们要把我们的编译好的QT程序的文件夹打开,把里面的 .CPP/.h文件拷贝出来,新建立一个文件夹;
4.把以上的文件里的.cpp .h文件复制后新建立一个文件夹。
5.新文件夹建立后,在linux终端中进入到该文件夹所在目录下,执行这个命令:qmake-arm -project命令,千万注意,-project 和arm之间一定要有空格啊!该命令执行后,会生成一个.pro文件,紧接着呢,执行qmake-arm命令,该命令执行后呢,会生成一个Makefile文件,这步很关键哦,没有这步就不会有Makefile文件,一般在这步会出现很多错误,就是库没有发现之类,这个时候,一定要检查前面的步骤,仔细检查看是否是错误。
我们这个时候打开Makefile文件看一下,会发现,里面的编译已经变成
arm-linux-g++。
这个时候,就踏实,接下来怎么办?还用问吗,直接make下就好了,哈哈,简单吧!看到上面的qtmyjpg文件了吗?这个是可以在开发板上运行的哦!接下来
不用我说了吧,直接发送到开发板上执行,可以看到图片喽!
6.下到开发板上之后呢,通常会发现没有权限,执行chmod +x qtmyjpg 就可以了,但是注意,要执行这个qtmyjpg文件,一定要这样输入命令:./qtmyjpg -qws为什么需要加这个参数呢?很简单,你不加执行时会出现错误原因,自己看下吧,哈哈!
7.一般这个时候触摸屏需要矫正。
进入“/usr/tslib/bin/”,查看里面的文件,有一个
“ts-calibrate”文件,执行这个文件,./ts-calibrate 后,可以看到LCD屏幕上出现十字点,用触摸笔点一下就可以,至此,整个QT在LCD上显示整理完毕,花了我半下午时间加上对曹老师的请教,终于完成,嘿嘿!赶紧试试哦。