linux下arm平台Qt编译环境搭建与解析

一.概述:

???? 我们知道QTcreator。这仅仅是个IDE,他包含了一个编译器--qmake.这两者的关系与codeblocks和g++的关系一样,首先要明确这些。

???? 而我们在linux下搭建arm平台的QT编译环境,基本的是要使用适合arm的qmake。正如我们编译在arm上使用c++程序时要用arm-none-linux-gnueabi-g++一样。而qmake仅仅是我们使用的工具,自然不须要也不能换。所以我们仅仅要使用arm-none-linux-gnueabi-g++编译一个qmake就可以(主要是编译生成arm上适合使用库。qmake应该还是适合linux下使用的,否则也无法编译)。

二.环境:

??? pc机:linux就可以,我用的是ubuntu。这些没什么影响

??? arm:arm9。这个也没什么影响。仅仅是你的交叉编译器一定要相应你的arm平台

??? 交叉编译器:arm-none-linux-gnueabi-,编译器用适合自己的arm平台的。至于交叉编译器的使用,这里不做讲述了。

?? QTcreator:QT4.8左右的,这个也无所谓。仅仅是配置略微不同,思路一样

??? qmake:使用qt-everywhere-opensource-src-4.7.4.tar.gz生成。核心就是这一步。

三.准备

??? 1.安装交叉编译器,包含配置环境。arm-none-linux-gnueabi-g++可用应该就没有问题了,这里能够參考前面对交叉编译器安装的记录。

??? 2.下载qt--everywhere-opensource-src-4.7.4.tar.gz,百度搜吧。

??? 3.QTcreator安装,直接在ubuntusoftwarecenter安装就可以,自己网上下载适合版本号点击安装也可,非常easy。这里说明一下。你安装了QTcreator已经自带了qmake,它是编译linux(你自己的pc)平台程序的,你要用适合arm的qmake替换它,两者能够自己切换。

四.armqt库的编译生成

??? 1.解压。。

。。

。。

。。。。。

??? 2.进入qt-everywhere...........接下来有人说要改mkspecs/qws/linux-arm-g++/qmake.conf(当前文件夹下)。这是应为自己要用的交叉编译器是arm-none-linux-gnueabi-而不是

arm-linux-,事实上不须要,应为mkspecs/qws/下有linux-arm-gnueabi-g++能够相应我们要用的交叉编译器,我们使用它既可

?? 3.???? ./configure -prefix /usr/local/qt-4.7.3-linux-arm-install -embedded arm -host-little-endian -no-cups -no-3dnow -nomake examples -nomake demos -nomake docs -xplatform /qws/linux-arm-g++??? -prefix代表你的安装文件夹,-embedded代表安装嵌入式版本号的。最后的-xplatform指定编译器,如上步描写叙述的一样。

??? 4.上步中会有几次提示。第一次问你开源还是*****,总之选o就能够了。过一段时间还会提示你,选择yes既可,假设没有这两步的话就是有问题,就不要浪费几个小时去make了,又一次来过吧。假设成功,他会提示你运行make运行make install,还会告诉你安装在哪个文件夹。

???? 5.make。几个小时才干够。

???? 6.make install ,这样就算完毕了。你会再安装文件夹看到有bin,include,lib灯这些文件夹,跟gcc的文件夹几乎相同,跟编译完boost的文件夹也几乎相同。事实上道理都是一样的。

????? 7.须要的话你要给你的qmake改个名字(你的电脑安装qtcreator的时候已经有个qmake了,这是电脑版的),如armqmake,这样你就能够配置环境变量了。能够在随意文件夹运行你的armqmake,我没有做这里,自己不须要。

?

到这里。事实上你就能够使用qmake了:

?????????hello.cpp源代码:
? ? ? ? ?#include <QApplication>
? ? ? ? ?#include <QDebug>
? ? ? ? ?int main(int argc,char *argv[])?
? ? ? ? {
? ? ? ? ? ? qDebug("Hello, welcome to Qt world!");
? ? ? ? ? ? return 0;
? ? ? ? ?}
??
? 顺序运行下面操作:
? @1. 运行:qmake -project hello1.cpp
? ? ? ? 生成 hello1.pro 工程文件
? @2. 运行:qmake hello1.pro
? ? ? ? 生成 Makefile 文件?
? @3. 运行:make
? ? ? ? 生成 hello.o, hello 文件?

?

五.配置qtcreator,这是为了开发方便

假设你已经安装好creator了。上面工具栏tool->option->左边build&run->qtversion,加入你的arm版的qmake(armqmake)。

还是这里,选tool chains加入你的交叉编译器。

选unconfigured project,不同版本号可能不同,有个不是这个名字,可是作用一样。代表你要用哪个qmake相应哪个编译器(对,两个编译器,g++跟qmake,linuxpc相应pc的,arm相应arm的)。然后相应就可以,有时候可能toolchain找不到你刚配置的交叉编译器,你关了重开option就该出来了。

?

?六.链接文件配置

问题:

1.导入qmake的时候可能会报错。我的是报错了,个人认为应该都报错。

这须要进入mkspecs文件夹查看default指向哪里,正确的应该指向/qws/linux-arm-gnueabi-g++,(不清楚默认的是不是这个,我这里没有查看,由于出现上图的问题,我直接改了)。总之删除default,然后运行ln -s qws/linux-arm-gnueabi-g++ default就能够了。又一次配置qtcreator后发现正常了(option窗体要关闭再打开)。

七.常见编译问题总结

??? 1.

2011-10-29 15:58

error: main.o: Relocations in generic ELF (EM: 3)解决的方法

在编译arm版本号的qt程序时,出现错误error: main.o: Relocations in generic ELF (EM: 3)。由于開始我的程序是编译成了x86版的程序,然后我想编译到arm下运行,编译的时候出现了上述错误。

解决的方法:对工程clean一下,你再又一次编译应该就没错了。

2.?undefined reference to ‘QWSKeyboardHandler::

出现这个问题。是说这个类没找到,而你发现这个类的确是在头文件包含的,这可能是由于你的编译器还是用的linux版本号的,而这个类仅仅存在arm版本号。

解决的方法:qmakearm要配置对,另外也可能是上面问题的default有问题,更改就可以。

原文地址:https://www.cnblogs.com/ldxsuanfa/p/10538830.html

时间: 2024-10-24 19:27:47

linux下arm平台Qt编译环境搭建与解析的相关文章

Linux下Qt4.5.3开发环境搭建

操作系统:Ubuntu12.04 搭建环境:Qt4.5.3开发环境--编译库文件和qmake工具 ①到http://download.qt.io/archive/qt/4.5/网站下载编译源文件,然后放到Ubuntu系统里进行解压: tar –xzvf qt-x11-opensource-src-4.5.3.tar.gz tar –xzvf qt-embedded-linux-opensource-src-4.5.3.tar.gz 这两个源码包的作用:QT-X11-4.5.3是运行于linux平

Linux下C++的编程——开发环境搭建与第一个程序

上一篇文章Linux下C++的编程--开偏介绍中我们已经介绍了GUN.GCC.G++等一些重要的概念,现在应该开始动手实践了! 开发工具的安装 环境 Distributions版本:CentOS 6.7 Linux内核片:2.6.32-573.3.1.el6.i686 一般Linux安装完之后默认就已经安装了GCC(GNU Compiler Collection),你可以查看一下gcc和g++的版本号检查gcc和g++是否已经安装. [luowf@luoweifu ~]$ gcc -v gcc

linux下nginx+php+mysql 自助环境搭建

++++++++++++++++++++++++++++++++++++++++++++++linux下nginx+php+mysql环境搭建++++++++++++++++++++++++++++++++++++++++++++++操作系统 : [CentOS6.0]服务器 : [nginx-1.1.8]PHP : [php-5.2.6]数据库 : [mysql-5.1.59]++++++++++++++++++++++++++++++++++++++++++++++准备安装软件(downlo

Linux下配置APUE的编译环境

APUE即Unix环境高级编程,本书中几乎所有的程序都包含一个apue.h的头文件,那如何配置这个apue.h呢? 1.我们可以在http://pan.baidu.com/s/1dDxmtbF中下载,然后放到你的Linux桌面上(没桌面的,随意放吧) 2.解压下载的文件: tar -zxv -f src.3e.tar.gz 3.进入解压后的目录: cd apue.3e/ 4.编译: make 我们会发现出现如下错误: can,t find -lbsd 5.下载并添加libbsd.a的静态链接库:

Linux下JDK Tomcat MySQL基本环境搭建

1. 安装JDK 1.上传jdk-7u45-linux-x64.tar.gz到Linux上 2.解压jdk到/usr/local目录 tar -zxvf jdk-7u45-linux-x64.tar.gz -C /usr/local/ 3.设置环境变量,在/etc/profile文件最后追加相关内容 vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_45 export PATH=$PATH:$JAVA_HOME/bin 4.刷新环境变量 s

linux下apache+mysql+php开发环境纯源代码编译搭建

linux下apache+mysql+php开发环境纯源代码编译搭建 记录一下我在fedora core 1下通过源代码编译出来的apache+mysql+php开发环境的全部过程 通常安装一台服务器当然使用rpm是最方便的,不需要考虑太多配置的问题,就可以轻松获得需要的环境了.不过rpm包互相关联的问题也不是这么容易解决. apache,mysql,php这三个应用从源代码编译安装还是比较简单的,配置参数不算复杂,而且没有太多的依赖关系,从源码编译出来的系统也比较稳定一些,方便未来打补丁和升级

Qt在Windows下的三种编程环境搭建(图文并茂,非常清楚)good

尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器和调试器的信息如图所示: http://qt-project.org/doc/qtcreator-3.0/creator-debugger-engines.html (Home | Docs | Qt Creator 3.0 | Debuggingand Analyzing | Setting Up

Qt在Windows下的三种编程环境搭建

尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器和调试器的信息如图所示: http://qt-project.org/doc/qtcreator-3.0/creator-debugger-engines.html (Home | Docs | Qt Creator 3.0 | Debuggingand Analyzing | Setting Up

嵌入式linux QT开发(二)——QT开发环境搭建

嵌入式linux QT开发(二)--QT开发环境搭建 一.Windows系统QT开发环境搭建 操作系统:Windows 7 QT Creator:qt-creator-win-opensource-2.4.1 QT SDK:qt-win-opensource-4.7.4-mingw 1.安装QT Creator 点击qt-creator-win-opensource-2.4.1源程序安装. 2.安装QT SDK 点击qt-win-opensource-4.7.4-mingw源程序安装. 选择mi