一、嵌入式Qt开发环境的搭建前奏

1、下载arm-linux-gcc-4.4.3-20100728.tar.gz
2、下载qt-everywhere-opensource-src-4.8.5.tar.gz(Qt的源码)
3、下载qt-creator-linux-x86_64-opensource-2.5.2.bin(我的系统是64位,所以选择x86_64)
4、下载tslib-1.4.tar.gz(触摸屏校验工具)

二、嵌入式Qt开发环境的搭建间奏

1、系统环境
主机操作系统:ubuntu14.04
主机编译器:gcc4.4.3,
交叉编译器:arm-linux-gcc-4.3.3
2、安装交叉编译器
(1)首先以root用户登入
(2)复制arm-linux-gcc-4.3.2.tgz到根目录下tmp文件夹里
(3)解压命令tar xvzf arm-linux-gcc-4.3.2 -C /,注意以上命令必须要有-C而且是大写的后边有个空格也要注意
(4)配置下编译环境路径,在控制台下输入 gedit /root/.bashrc 等一会出来文本编辑器后在文件最后(最后一行)加上下面代码
export PATH=/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH
重新打开一个终端,使上面的配置文件生效;输入命令 arm-linux-gcc -v; 如果出现gcc的版本信息,就代表交叉编译器安装成功,会输出gcc的版本号;
3、安装触摸屏校验工具
把tslib-1.4.tar.gz放到一个目录下,比如/opt目录下。接着执行命令如下:#tar zxvf tslib-1.4.tar.gz
执行命令cd tslib,进入tslib当前目录,接着执行命令如下:#./autogen.sh
然后接着执行配置命令:#./configure --prefix=/usr/local/tslib --host=arm-linuxac_cv_func_malloc_0_nonnull=yes
最后执行编译命令和安装命令如下:(1)make (2)make install
如果以上步骤没错,则可以在/usr/local/tslib下出现我们需要的库文件,这些库文件我们移植时会用到。
编译期间出现的错误:./autogen.sh: 4: autoreconf: not found
解决办法:sudo apt-get install autoconf automake libtool
编译期间出现错误:make没有指定的makefile
解决办法:不要在虚拟机与window的共享文件中进行make,会出错
4、安装QtCreator
4.1 qt-creator-linux-x86_64-opensource-2.5.2.bin 拷贝到linux系统中,在终端中把路径切换到qt-creator-linux-x86_64-opensource-2.5.2.bin所在的路径,运行命令:./qt-creator-linux-x86_64-opensource-2.5.2.bin 就会出现图形安装界面;下面的安装步骤就和我们在windows下安装软件差不多。
注意:下的版本要和你的操作系统相匹配,32位的系统下对应32位的应用程序;
4.2 编译Qt库源码
4.2.1 解压
将源码qt-everywhere-opensource-src-4.8.5.tar.gz进行解压,并复制三份到/usr/local目录下,并分别命名为qt-pc,qt-x86,qt-arm
4.2.2 编译PC版
进入qt-pc目录,执行如下操作:
#./configure
#make
#make install
编译过程中出现的问题:
出错:g++命令未找到
这个错误主要是ubuntu 默认 不安装 g++,apt-get install g++即可
出错:Basic XLibfunctionality test failed!
这个错误主要是因为,XLib库没有安装,所以在编译X11平台时,应该保证,以下命令正确执行:sudo apt-get install libx11-dev libxext-dev libxtst-dev
注意:可以使用 make confclean 命令 把以前的配置信息清除掉,然后再重新配置。
点击获取更详细的步骤
4.2.3 编译x86版
进入qt-x86目录,执行如下操作:
# ./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse-qvfb
# make
# make install
安装过程比较长,没有碰到过错误。
编译安装PC版中的 qvfb:
进入qt-pc/tools/qvfb/目录,执行如下操作:
#make
编译完毕,将qt-pc/bin目录下的qvfb文件复制到/usr/local/Trolltech/QtEmbedded-4.8.5/bin目录。
编译qvfb时,出现了如下错误:
x11keyfaker.cpp:48:34: 致命错误: X11/extensions/XTest.h:没有那个文件或目录
编译中断。make: *** [.obj/release-shared/x11keyfaker.o] 错误 1
解决方法:sudo apt-get install xorg-dev
如果makefile中没有-lXtst选项,则修改makefile 中 LIBS 选项: 添加 -lXtst选项
4.2.4 编译ARM版
必须加上“-prefix /usr/local/Trolltech/QtEmbedded-4.8.5-arm ”参数, 不然安装后不在QtEmbedded-4.8.5-arm文件夹下,而是覆盖了QtEmbedded-4.8.5。

# ./configure
-prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm  
-opensource
-confirm-license
-release -shared
-embedded arm
-xplatform qws/linux-arm-g++
-depths 16,18,24
-fast
-optimized-qmake
-pch
-qt-sql-sqlite
-qt-libjpeg
-qt-zlib
-qt-libpng
-qt-freetype
-little-endian -host-little-endian
-no-qt3support
-no-libtiff -no-libmng
-no-opengl
-no-mmx -no-sse -no-sse2
-no-3dnow
-no-openssl
-no-webkit
-no-qvfb
-no-phonon
-no-nis
-no-opengl
-no-cups
-no-glib
-no-xcursor -no-xfixes -no-xrandr -no-xrender
-no-separate-debug-info
-nomake examples -nomake tools -nomake docs
-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
如果放弃配置,则使用命令:# make confclean
编译:# make
安装:# make install

安装完成后,在/usr/local/Trolltech目录中有三个文件夹:Qt-4.8.5、QtEmbedded-4.8.5、QtEmbedded-4.8.5-arm。
4.3 安装完后
4.3.1 qvfb的测试
运行qvfb,提示了如下错误,在网上也查了很多种解决办法,最后还是没有解决; 有的说要重新编译内核,并带上参数;觉得比较麻烦,就没有去尝试;不过这个错误并不影响我们仿真模拟Qt4程序。
4.3.2 QtCreator编译前的配置
X86的调试编译与调试
(1)打开QtCreator ,工具---->选项--->构建和运行 进行设置,在Qt版本菜单下,手动设置选择qmake路径
(2)打开QtCreator 对其进行设置,点击左边的项目,选择运行,对其进行设置,在参数里添加 -qws参数
(3)编译与运行,现在终端 输入命令:qvfb -width 800 -height 480 & 打开虚拟缓冲端;然后就可以在QtCreator对程序进行编译、运行了;
关于ARM移植的那部分还没有做,等以后自己做的话,再补充。

嵌入式Qt开发环境的搭建详解的更多相关文章

  1. VirtualBox开发环境的搭建详解(转)

    VirtualBox开发环境的搭建详解   有关VirtualBox的介绍请参考:VirtualBox_百度百科 由于VirtualBox官网提供的搭建方法不够详细,而且本人在它指导下,从下载所需的开 ...

  2. VirtualBox开发环境的搭建详解

    有关VirtualBox的介绍请参考:VirtualBox_百度百科 由于VirtualBox官网提供的搭建方法不够详细,而且本人在它指导下,从下载所需的开发包,到最后生成二进制文件,中间遇到了许多的 ...

  3. Ubuntu14.04搭建JSP与Servlet开发环境及其测试详解

    一,搭建JDK开发环境 1,在Java官网下载Jdk软件包,我的系统是64位Ubuntu14.04,所以选择jdk-8u25-linux-x64.tar.gz. 2,解压Jdk软件包 tar xvzf ...

  4. 在 IntelliJ IDEA 中配置 JSF 开发环境的入门详解

    JSF 作为 JavaEE 官方标准,在了解并掌握其基本开发技术后,对于功能要求较高.业务流程复杂的各种现代 Web 应用程序开发将会成为非常合适且强大的高效率开发利器.JSF 的开发环境搭建涉及到在 ...

  5. Qt开发环境的搭建

    首先讲讲为什么要用Qt这个东东吧!用了以后才知道,这门语言真的很不错,我权当把它当成了类库来用,Linux本身的C语言编程是很烦的,比如说串口编程,虽说C编程也不难,但是使用Qt这种封装的类库来操作的 ...

  6. Windows平台下Qt开发环境的搭建

    Qt 是采用开源和商用双协议发布的开放源代码的图形开发类库,现在很多图形化的开源软件都使用了Qt. 下载地址:http://qt-project.org/downloads 1. 下载安装包 你可以从 ...

  7. Ubuntu下嵌入式Qt开发环境配置全攻略

    http://qpcwth.blog.163.com/blog/static/20993024620139151424822/ 在安装的过称中,出现一些问题,注意试想: 1.本次开发环境的配置,是基于 ...

  8. IDEA里如何安装Python插件打造开发环境(图文详解)

    前言 python是一种功能强大和适用面很广的开发语言,在大数据应用和机器学习日益流行的年代,python凭借其简洁.易用和可扩展性获得很多用户的支持,近年来使用率高速增长.python环境下,集成了 ...

  9. 【Qt开发】V4L2 API详解 Buffer的准备和数据读取

    前面主要介绍的是:V4L2 的一些设置接口,如亮度,饱和度,曝光时间,帧数,增益,白平衡等.今天看看V4L2 得到数据的几个关键ioctl,Buffer的申请和数据的抓取. 1. 初始化 Memory ...

随机推荐

  1. bzoj 4465 游戏中的学问

    Written with StackEdit. Description 大家应该都见过很多人手拉手围着篝火跳舞的场景吧?一般情况下,大家手 拉手跳舞总是会围成一个大圈,每个人的左手拉着旁边朋友的右手, ...

  2. 【LeetCode】汇总

    此贴为汇总贴 673. Number of Longest Increasing Subsequence 075. Sort Colors 009. Palindrome Number 008. St ...

  3. python中reload(module)的用法,以及错误提示

    1.Python2中可以和Python3中关于reload()用法的区别. Python2 中可以直接使用reload(module)重载模块.   Pyhton3中需要使用如下两种方式: 方式(1) ...

  4. Browserify使用指南(转)

    让浏览器加载Nodejs模块 目前NPM上有二十多万个NodeJS模块,它们都是通过CMD的方式打包的,除了特定的可以使用CMD模块加载器加载的模块,大部分nodejs模块无法直接使用到浏览器环境中. ...

  5. cxGrid使用汇总3

    32根据单元的值设置样式   解决:procedure   <aForm>.<aColumn>StylesGetContentStyle(         Sender:   ...

  6. 浅谈FPGA的选型

    工欲善其事必先利其器,开发FPGA的第一步,当然是选择一片符合设计需求的芯片. 器件特色 选片第一个关注的应该是FPGA器件的专用资源. 例如是否需要高速接口,如果需要的话,需要多少个通道,各个通道需 ...

  7. FPGA噪声干扰

    在FPGA高速AD采集设计中,PCB布线差会产生干扰.今天小编为大家介绍一些布线解决方案. 1.信号线的等长 以SDRAM或者DDRII为例,数据线,命令线,地址线以及时钟线最好等长,误差不要超过50 ...

  8. (转)IE=EmulateIE7 标签的作用

    本文转载自:http://www.cnblogs.com/0000/archive/2009/11/01/1593851.html 对于 Web 开发人员来说,文本兼容性是一个要考虑的重要问题.Win ...

  9. 【转】使用Jmeter录制web脚本

    1.web性能测试以及web http请求基本原理. 再介绍录制jmeter脚本之前,我们先谈一下web性能测试.web就是调用http/https接口, 其实没有是什么复杂度可言.只是我们必须清楚, ...

  10. java多线程的练习------------。加深

    总结:线程的理解不够.还不够 package com.aa; public class MyThread implements Runnable {// 我们可以继承一个Thread.但是我们可以实现 ...