搜索
bottom↓
回复: 74

轻松搭建Qt/Embedded开发环境

[复制链接]

出0入0汤圆

发表于 2009-8-12 23:46:02 | 显示全部楼层 |阅读模式
想起自己当初刚开始学习Qt的那个苦恼,不知经历了多少次的失败才把开发环境搭建起来,现在就把它总结一下,希望对大家有所帮助。




一、        准备工作


1.        硬件环境

A.        主机:x86系列PC机。
B.        开发板:友善之臂mini2440。
C.        通讯连接:串口和USB。


2.        软件环境

A.        主机操作系统:VMware虚拟机下的Redhat linux 9.0(完全安装) 。
B.        开发板操作系统:嵌入式Linux,内核版本为2.6.13。
C.        交叉编译器:arm-linux-gcc-3.3.2。
D.        通讯方式:虚拟机与主机(Windows XP)使用共享文件夹通讯,主机与开发板使用DNW和Secure CRT通讯。


3.        相关说明

A.        命令:所有以#开头的均为在shell中执行的命令。
B.        交叉编译器位置:/usr/local/arm/3.3.2。
C.        工作目录:默认为/opt/qt。
D.        脚本注释:均放在命令下一行的圆括号内。


4.        下载源码包

A.        工程管理tmake-1.1.1.tar.gz,用于生成Makefile。
B.        Qt/X11软件包qt-x11-2.3.2.tar.gz,用于生成qvfb等开发工具。
C.        Qt/Embedded软件包qt-embedded-2.3.7.tar.gz,Qt/Embedded图形库。
D.        Qt的PDA应用框架qtopia-free-1.7.0.tar.gz,可以生成一个Qt的PDA程序。


5.        编译前准备

A.        建立工作目录
#mkdir /root/qt
#cd /root/qt
#mkdir x86-qt
    (仿真开发目录)
#mkdir arm-qt
    (交叉编译目录)
#cp …
    (复制所有源码包到此目录)
B.        解压源码包
#cd /root/qt/
#tar zxvf tmake-1.1.1.tar.gz –C x86-qt
#tar zxvf tmake-1.1.1.tar.gz –C arm-qt
#tar zxvf qt-x11-2.3.2.tar.gz –C x86-qt
#tar zxvf qt-x11-2.3.2.tar.gz –C arm-qt
#tar zxvf qt-embedded-2.3.7.tar.gz –C x86-qt
#tar zxvf qt-embedded-2.3.7.tar.gz –C arm-qt
#tar zxvf qtopia-free-1.7.0.tar.gz –C x86-qt
#tar zxvf qtopia-free-1.7.0.tar.gz –C arm-qt
    (加压源码包分别到两个目录)
#cd x86-qt
#mv tmake-1.1.1 tmake
#mv qt-x11-2.3.2 qt-x11
#mv qt-embedded-2.3.7 qt
#mv qtopia-free-1.7.0 qtopia
#cd ../arm-qt
#mv tmake-1.1.1 tmake
#mv qt-x11-2.3.2 qt-x11
#mv qt-embedded-2.3.7 qt
#mv qtopia-free-1.7.0 qtopia
    (为了方便,给目录改名)




二、        搭建Qt/Embedded仿真开发环境


1.        安装tmake

#cd /root/qt/x86-qt
#export TMAKEDIR=$PWD/tmake
#export TMAKEPATH = $PWD/tmake/ lib/qws/linux-generic-g++
    (只用注册好tmake的环境变量皆可使用)


2.        安装Qt/X11

#cd qt-x11
#export QTDIR=$PWD
(设置环境变量)
#./configure –static –no-xft –no-opengl –no-sm
(配置,回答yes)
#make –C /src/moc
#cp src/moc/moc bin
(编译并复制moc工具到bin目录)
#make –C src
(编译Qt/X11库)
#make –C tools/designer
#cp tools/designer/designer bin
(编译Designer,用于可视化界面设计)
#make –C tools/qvfb
#cp tools/qvfb/qvfb bin
(编译qvfb,用于在PC机上仿真Qt程序)


3.        编译Qt/Embedded

#export QTDIR=$PWD/qt
#export PATH=$QTDIR/bin:$TMAKEDIR/bin: $PATH
#cd qt
(设置环境变量)
#cp /qtopia/src/qt/qconfig-qpe.h src/tools/
    (从Qtopia源码中复制配置文件)
#./configure –system-jpeg –gif –system-libpng –system-zlib –platform linux-generic-g++ -qconfig qpe –depths 16,24,32
(配置Qt/Embedded图形库,然后回答两个yes)
#make –C src
(编译Qt/Embedded)


4.        编译Qtopia

#cd ../qtopia/src
#./configure  -platform linux-generic-g++
#make


5.        编写环境变量脚本

脚本内容如下,在/opt/x86 -qt/下保存为set-env,在编译或者运行Qt程序之前进入该目录执行此脚本。
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/ linux-arm-g++
export PATH=$QTDIR/bin:$ QPEDIR/bin:$TMAKEDIR/bin: $PATH




三、        交叉编译Qt/Embedded图形库


首先要确保我们安装好了交叉编译器arm-linux-gcc,可以使用如下命令测试:
#which arm-linux-gcc
    (如果所显示的arm-linux-gcc的版本和路径与你所安装的一致,那么就可以用它来交叉编译Qt库和应用程序了。)


1.        安装tmake

#cd /root/qt/arm-qt
#export TMAKEDIR=$PWD/tmake
#export TMAKEPATH=$PWD/tmake/lib/qws /linux-arm-g++
    (设置tmake环境变量,即可直接使用)


2.        交叉编译Qt/Embedded

#export QTDIR=$PWD/qt
#export PATH=$QTDIR/bin:$TMAKEDIR/bin: $PATH
(设置环境变量)
#cd qt
#cp ../qtopia/src/qt/qconfig-qpe.h ./src/tools
    (从Qtopia源码中复制配置文件)
#make clean
#./configure ./configure -system-jpeg -gif -system-libpng -system-zlib -platform linux-arm-g++  -qconfig qpe -depths 16,24,32  
(配置,然后回答两个yes)
# make -C src
(编译Qt/Embeddesd)


3.        交叉编译Qtopia

cd ../qtopia/src
./configure  -platform linux-arm-g++
make


4.        编写环境变量脚本

脚本内容如下,在/opt/arm -qt/下保存为set-env,在编译或者执行Qt程序之前在该目录执行此脚本。
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/ linux-arm-g++
export PATH=$QTDIR/bin:$ QPEDIR/bin:$TMAKEDIR/bin: $PATH




四、        仿真Qt/Embedded应用程序


1.        注册环境变量

#cd/root/qt/x86-qt
#source set-env
    (或者#. set-env,.和set-env之间有一个空格)
#mkdir hello
#cd hello


2.        设计界面

使用Qt/X11的可视化界面设计工具Qt Designer设计界面。
#designer hello.ui
然后设计好界面,保存并退出。


3.        生成界面代码

使用Qt的代码自动生成工具uic把设计好的界面hello.ui生成相应的c++代码:hello.h和hello.cpp。
        #uic -o hello.h hello.ui
        #uic -o hello.cpp -impl hello.h hello.ui
生成的源文件中把我们设计好的界面定义为一个类,在我们的程序中使用这个类创建对象,并设为主控件就可以了。


4.        编写代码

#vi main.cpp
    (编辑main.cpp,内容如下)
#include<qapplication.h>
#include"hello.h"
//包含我们设计的界面MainWindow类的声明

int main(int argc,char **argv)
{
        QApplication app(argc,argv);
        MainWindow *mainwindow=new MainWindow(0,"MainWindow");
//实例化MainWindow,MainWindow为在使用Designer设计界面时给主窗口的名称。

        app.setMainWidget(mainwindow);
//把mainwindow设定为程序的主控件,在程序执行时就可以显示这个控件。

        mainwindow->show();
//显示mainwindow,这样就为我们的界面显示做好准备了。

        return app.exec();
}


5.        建立工程

可以使用tmake中的progen工具产生一个工程模板,然后自己修改。也可以自己写工程文件,个人觉得这样方便,下面我们就自己写一个吧!
#vi hello.pro
    (编辑内容如下)
TEMPLATE=app
#表明这是一个应用程序
CONFIG+=qtopia warn_on release
#qtopia:生成qtopia应用程序,warn_on:所有的警告全部打开,release:不带调试信息
SOURCES=main.cpp hello.cpp
#指明工程中包含的源程序
HEADERS=hello.h
#指明源程序中包含的头文件
TARGET=hello
#生成的程序名为hello



6.        编译并仿真运行程序

#tmake -o Makefile panel.pro
#make
    (这样就会在当前目录下生成hello可执行文件)
#qvfb &
    (执行Qt虚拟缓冲帧,用于仿真)
#./hello –qws
    (运行编译好的程序,在qvfb上就可以看到我们设计的界面了)




五、        交叉编译程序


#cd /root/qt/arm-qt
#. set-env
# cp ../x86-qt/hello .  -r
#cd hello
#tmake -o Makefile panel.pro
#make
    (把生成的hello下载到带有Qt/Embedded图形库的开发板上执行即可)





      点击此处下载 ourdev_470347.pdf(文件大小:240K) (原文件名:轻松搭建Qt Embedded开发环境.pdf)

出0入0汤圆

发表于 2009-8-13 07:41:42 | 显示全部楼层

出0入0汤圆

发表于 2009-8-13 08:13:08 | 显示全部楼层
顶一下!

出0入0汤圆

发表于 2009-8-13 08:36:48 | 显示全部楼层

出0入0汤圆

发表于 2009-8-13 08:57:21 | 显示全部楼层
支持,感谢楼主的分享

出0入0汤圆

发表于 2009-8-30 08:13:08 | 显示全部楼层
mark~

出0入0汤圆

发表于 2009-8-31 15:04:30 | 显示全部楼层
必须得顶啊,好东西,收下了

出0入0汤圆

发表于 2009-8-31 15:21:02 | 显示全部楼层
不错的 顶起来

出0入0汤圆

发表于 2009-8-31 15:51:06 | 显示全部楼层
__ \/_
      (' \`\
   _\, \ \\/
    /`\/\ \\
         \ \\   
          \ \\/\/_
          /\ \\'\
        __\ `\\\
         /|`  `\\
                \\
                 \\
                  \\    ,
                   `---'

出0入0汤圆

发表于 2009-9-23 19:35:14 | 显示全部楼层
关注,谢谢楼主

出0入0汤圆

发表于 2009-9-23 21:05:50 | 显示全部楼层
关注,谢谢楼主

出0入0汤圆

发表于 2009-12-7 17:29:39 | 显示全部楼层
楼主真是个大好人! 哈哈

出0入0汤圆

发表于 2009-12-11 17:18:45 | 显示全部楼层
太好了,这个对我有用,就是QT的版本有点低了~~现在都是4.5了吧

出0入0汤圆

发表于 2009-12-11 17:29:20 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-11 19:09:17 | 显示全部楼层
快用到了

出0入0汤圆

发表于 2010-6-5 16:04:42 | 显示全部楼层
好东西 必须顶

出0入0汤圆

发表于 2010-6-7 23:35:27 | 显示全部楼层
好东西 必须顶

出0入0汤圆

发表于 2010-6-8 00:40:02 | 显示全部楼层
mark!~

出0入0汤圆

发表于 2010-6-8 05:42:31 | 显示全部楼层
感谢楼主,这个论坛qt不火呀!

出0入0汤圆

发表于 2010-6-8 07:20:33 | 显示全部楼层
顶,学习了

出0入0汤圆

发表于 2010-6-13 01:37:56 | 显示全部楼层


初学ARM,想熟悉了ARM再学嵌入式系统,各位说这样安排合理吗?

出0入0汤圆

 楼主| 发表于 2010-6-14 17:01:59 | 显示全部楼层
建议先熟悉linux在熟悉arm下的嵌入式开发。

出0入0汤圆

发表于 2010-6-15 12:58:42 | 显示全部楼层
mark。

出0入0汤圆

发表于 2010-6-17 10:11:58 | 显示全部楼层
回复【21楼】Linfanfeng
-----------------------------------------------------------------------

那熟悉Linux要熟悉到什么程度?能在linux下编程?还是...?

出0入0汤圆

发表于 2010-6-17 11:19:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-17 11:32:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-17 13:03:20 | 显示全部楼层
标记

出50入0汤圆

发表于 2010-6-17 13:40:00 | 显示全部楼层
做个标记,谢谢

出0入0汤圆

发表于 2010-10-20 00:04:16 | 显示全部楼层
轻松搭建Qt Embedded开发环境

出0入0汤圆

发表于 2010-10-22 16:24:50 | 显示全部楼层
mark!!

出0入0汤圆

发表于 2010-10-22 18:42:54 | 显示全部楼层
Mark

出0入0汤圆

发表于 2010-10-23 10:35:41 | 显示全部楼层
回复【楼主位】superyongzhe 最后的骑士
-----------------------------------------------------------------------

mark

出0入0汤圆

发表于 2010-10-23 22:05:42 | 显示全部楼层
不错的说!

出0入0汤圆

发表于 2010-10-23 23:02:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-29 11:41:12 | 显示全部楼层
HAO .

出0入0汤圆

发表于 2010-10-29 13:49:30 | 显示全部楼层
楼主能否出个QT高版本的啊?
比如QT4.5的
这样在windows下也装一个
在windwos下运行OK了,再拿到linux下编译
这样就方便啦
头像被屏蔽

出0入0汤圆

发表于 2011-4-18 07:47:17 | 显示全部楼层
cool !

出0入0汤圆

发表于 2011-4-18 08:31:41 | 显示全部楼层
支持!

出0入0汤圆

发表于 2011-4-18 08:42:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-18 09:28:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-23 01:07:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-4-23 11:22:20 | 显示全部楼层
凡精必mark!

出0入0汤圆

发表于 2011-7-28 18:48:08 | 显示全部楼层
这个要看看

出0入0汤圆

发表于 2011-8-30 23:27:06 | 显示全部楼层
必须得顶啊,好东西

出0入0汤圆

发表于 2011-9-2 21:35:30 | 显示全部楼层
mark!!!

出0入0汤圆

发表于 2011-9-2 22:39:28 | 显示全部楼层
QT/LINUX环境搭建,MARK!

出0入0汤圆

发表于 2011-9-3 00:16:00 | 显示全部楼层
早看到这么好的帖子,当初就不要那么费神了

出0入0汤圆

发表于 2011-9-19 00:09:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-19 21:30:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-22 23:06:57 | 显示全部楼层
我是初学者,楼主的帖子很有价值!谢谢。

出0入0汤圆

发表于 2011-10-24 11:42:34 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-26 18:40:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-1 13:48:19 | 显示全部楼层
正是需要的,谢谢

出0入0汤圆

发表于 2011-11-20 14:29:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-21 11:34:33 | 显示全部楼层
很好!

出0入0汤圆

发表于 2011-11-22 23:19:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-22 23:30:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-25 09:28:28 | 显示全部楼层
不错

出0入0汤圆

发表于 2011-12-1 21:02:39 | 显示全部楼层
这对第一次接触QT的人确实是难得的帖子~指导的基础而到位

出0入0汤圆

发表于 2012-1-20 22:16:56 | 显示全部楼层
QT

出0入0汤圆

发表于 2012-1-20 22:40:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-20 22:46:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-21 08:43:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-21 16:27:08 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-2-1 02:48:58 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-1 12:31:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-1 13:39:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-1 14:10:21 | 显示全部楼层
qt 学习

出0入0汤圆

发表于 2012-2-1 14:16:05 | 显示全部楼层
Linux开发还是太麻烦啊

出0入0汤圆

发表于 2012-2-9 21:29:27 | 显示全部楼层
make

出0入0汤圆

发表于 2012-2-16 15:40:49 | 显示全部楼层
顶一下!

出0入114汤圆

发表于 2013-1-19 17:15:05 | 显示全部楼层
必须得顶啊,好东西,收下了

出0入0汤圆

发表于 2013-1-19 19:20:11 | 显示全部楼层
好东西啊,谢谢分享

出0入0汤圆

发表于 2013-1-22 16:32:13 | 显示全部楼层
谢谢分享
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 05:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表