Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2012907
  • 博文数量: 356
  • 博客积分: 8284
  • 博客等级: 中将
  • 技术积分: 4580
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-15 20:25
个人简介

天行健,君子以自强不息

文章分类

全部博文(356)

文章存档

2018年(1)

2016年(4)

2015年(13)

2014年(14)

2013年(2)

2012年(25)

2011年(43)

2010年(65)

2009年(189)

分类: LINUX

2009-11-12 22:24:40

QT4安装全过程

   【操作系统】:Ubuntu 9.0.4

   【交叉编译器】:armlinux-gcc-3.4.1

   【用户】:root
具体步骤与说明:

1. 下载源码包

qt-x11-opensource-src-4.5.0.tar.bz2

qt-embedded-linux-opensource-src-4.5.0.tar.bz2

下载地址:ftp://ftp.qtsoftware.com/qt/source/

2.编译及安装qt-x11-opensource-src-4.5.0

qt-x11版本可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。qt-embedded版本就是专门用于嵌入式方面的版本。

tar xjvf qt-x11-opensource-src-4.5.0.tar.bz2

cd qt-x11-opensource-src-4.5.0

./configure 

make

make install

历经漫长的编译过程,约一个半小时,默认安装在/usr/local/Trolltech/Qt-4.5.0下.编译完成后源程序不要删除,还有用。

3.编译及安装qt-embedded-linux-opensource-src-4.5.0

在用户目录下建立一个src目录,用于存放编译源文件qt-embedded-linux-opensource-src-4.5.0.tar.bz2。将其解压得到qt-embedded-linux-opensource-src-4.5.0,重命名为qt-embedded-linux-opensource-src-4.5.0-x86.再次解压qt-embedded-linux-opensource-src-4.5.0.tar.bz2,并重命令为qt-embedded-linux-opensource-src-4.5.0-arm.为什么有两个复制呢?我们可以从他们的名字上就不难看出前者是适合x架构的,后者适合arm架构的,如果有开发板的话,可以只编译qt-embedded版本成arm架构的就可以了,但是很多时候用qvfb的话,开发会方便很多,所以多编译一个x86架构的也不错。

mkdir ~/src

mv qt-embedded-linux-opensource-src-4.5.0.tar.bz2 ~/src

tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2

mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-x86

tar xjvf qt-embedded-linux-opensource-src-4.5.0.tar.bz2

mv qt-embedded-linux-opensource-src-4.5.0 qt-embedded-linux-opensource-src-4.5.0-arm

cd qt-embedded-linux-opensource-src-4.5.0-x86

./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -qvfb

make

make install

-------OK!qt-embedded-x86被安装在/usr/local/Trolltech/QtEmbedded-4.5.0-x86下.

cd qt-embedded-linux-opensource-src-4.5.0-arm

./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm

make

make install

-------OK!qt-embedded-arm被安装在/usr/local/Trolltech/QtEmbedded-4.5.0-arm下.

4.至此我们已经安装好了qt-x11版,即在PC机上运行的QT,qt-embedded-x86版(x86体系的嵌入式板子上运行的QT)和qt-embedded-arm(arm板子上运行的QT).下一步:设置环境变量

(1)qt-x11:

vi setenv.sh

添加如下内容:

PATH=/usr/local/Trolltech/Qt-4.5.0/bin:$PATH
    LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.5.0/lib:$LD_LIBRARY_PATH

保存退出.移到/usr/local/Trolltech/Qt-4.5.0中。

(2)qt-embedded-x86:

vi setenv.sh

添加如下内容:

 QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-x86
     PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin:$PATH
     LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-x86/lib:$LD_LIBRARY_PATH

保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-x86中。

(3)qt-embedded-arm:

vi setenv.sh

添加如下内容:

 QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm
     PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/bin:$PATH
     LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib:$LD_LIBRARY_PATH

保存退出.移到/usr/local/Trolltech/QtEmbedded-4.5.0-arm中。

我们在运行的时候分别运行对应的脚本即可,比如我们要用qt-x11:

cd /usr/local/Trolltech/Qt-4.5.0

source setenv.sh

然后就可以用qmake designer等工具了.

5.做到这一步还有qvfb没有编译,到qt-x11-opensource-src-4.5.0中重新编译qvfb即可

cd qt-x11-opensource-src-4.5.0

cd /tools/qvfb

make --会在qt-x11-opensource-src-4.5.0/bin下生成qvfb,我们将它copy至/usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin下

cp ../..bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin

6.做一个测试

cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86

source setenv.sh

cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/demos/books

qvfb -width 640 -height 480 &

./books -qws

效果截图:

还来做一个小测试:

vim hello.cpp

#include
 #include
 int main(int argc, char *argv[])
{
     QApplication app(argc, argv);
     QLabel *label = new QLabel("Hello Qt!");
     label->show();
     return app.exec();
}

保存退出。

qmake -project

qmake

make

./hello

效果如下:

胜利!


假设我们为你要用QtEmbedded-4.5.0-x86进行编译的时候,方法如下:
cd /usr/local/Trolltech/QtEmbedded-4.5.0-x86/
启动脚本,修改相应的环境变量
source setenv.sh
切换到源代码所在的目录
cd /home/my_Qt
cd test
编译,执行
qmake -project
qmake
make
在执行之前必须输入以下命令,如果直接./test的话,将有如下出错提示:
QWSSocket::connectToLocalFile could not connect:: 没有该文件或目录
QWSSocket::connectToLocalFile could not connect:: 没有该文件或目录
QWSSocket::connectToLocalFile could not connect:: 没有该文件或目录
QWSSocket::connectToLocalFile could not connect:: 没有该文件或目录
QWSSocket::connectToLocalFile could not connect:: 没有该文件或目录
QWSSocket::connectToLocalFile could not connect:: 没有该文件或目录
No Qt for Embedded Linux server appears to be running.
If you want to run this program as a server,
add the "-qws" command-line option.

qvfb&
./test -qws

效果如下:


但奇怪的是当我在另外一个终端里面用同样的方法时,提示出错,如下:




阅读(10234) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

number007cool2009-12-28 18:41:08

不好意思,你说的问题我没遇到过。你可以再在网上查一下。

chinaunix网友2009-12-18 14:22:18

/usr/include/openssl/kssl.h:167: parse error before `,' token make[1]: *** [.obj/release-shared/qsslcertificate.o] Error 1 make[1]: Leaving directory `/usr/local/qt-x11-opensource-src-4.5.0/src/network' make: *** [sub-network-make_default-ordered] Error 2 [root@localhost qt-x11-opensource-src-4.5.0]# 楼主 qt-x11-opensource-src-4.5.0.tar.bz2 我在安装这个的时候就出现了上面的这两个错误,不知道你有没有碰到这种情况。交叉编译器也是用 3.4.1的,便是就是编译不过去。