LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 980|回复: 0

求助高手:qte的安装问题

[复制链接]
发表于 2007-5-16 17:19:22 | 显示全部楼层 |阅读模式
要求的软件包我都有

* 安装与建立Qt桌面环境
*
***************************************************************************************************/
实验室设备和工具:
HardwareC机Pentumn500 or better,硬盘10G or more.
SoftwareC机OS(操作系统)RedHat Linux 9.0 + minicom + ARM-linux开发环境,tmake-1.13.tar.gz,qt-embedded-2.3.10-free.tar.gz,qt-x11-2.3.2.tar.gz

///////////////////////////////////////////////////////////////Qt/Embedded平台的搭建///////////////////////////////////////////////////////////////////////////
首先我们假设所有的压缩包放在/qt目录里,当前用户为root.
第一步:解压安装包( |压缩包)并设置环境变量.
1.install Tmake(解压安装Tmake,说明白点就是前面说的形成tmake-1.13)
cd /qt
tar -xzf tmake-1.13.tar.gz
export TMAKEDIR=$PWD/tmake-1.13
2.install Qt 2.3.2(解压安装qt-2.3.2,说明白点就是前面说的形成qt-2.3.2)
cd /qt
tar -xzf qt-x11-2.3.2.tar.gz
export QT2DIR=$PWD/qt-2.3.2
3.install Qt/Embedded(解压安装Qt/Embedded,说明白点就是前面说的形成qt-2.3.10)
cd /qt
tar -xzf qt-embedded-2.3.10-free.tar.gz
export QTEDIR=$PWD/qt-2.3.10
环境变量的设置很重要,它关系到能否正确的安装及编译这些安装包(|压缩包),介绍下这些环境变量:
TMAKEDIR:指向用于编译Qt/Embedded的Tmake工具,也就是要指向刚才tmake-1.13.tar.gz解压出来的tmake-1.13)
QT2DIR:指向qt-2.3.2,也就是要指向刚才qt-x11-2.3.2.tar.gz解压出来的qt-2.3.2)
QTEDIR:指向Qt/Embedded 2.3.10的文件夹,也就是要指向刚才qt-embedded-2.3.10-free.tar.gz解压出来的qt-2.3.10)
第二步:编译Qt/Embedded.
1.Build Qt 2.3.2
cd $QT2DIR
export TMAKEPATH=$TMAKEDIR/lib/linux-g++
export QTDIR=$QT2DIR
export PATH=$QTDIR/binPATH
export LD_LIBRARY_PATH=$QTDIR/libLD_LIBRARY_PATH
./configure -no-xft
make
cp bin/uic $QTEDIR/bin/
注意:./configure是对Qt进行配置,它包括很多选项,例如可以通过添加"-no-opengl"等,如果想要进一步了解可以通过命令./congiure --help来获得更多帮助信息.编译完成后要将生成的/bin/uic复制到$QTEDIR下的目录/bin中,随后编译Qt/Embedded的时候会用到这个工具.
2.Build Qt/Embedded (for PC机上的x86平台)
cd $QTDIR
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
export QTDIR=$QTEDIR
export PATH=$QTDIR/binPATH
export LD_LIBRARY_PATH=$QTDIR/libLD_LIBRARY_PATH
./configure -no-xft -qvfb -depths 4,8,16,32
make
在配置./configure 中-qvfb用来支持Virtual framebuffer,-depths 4,8,16,32支持4,8,16,32位显示色深.此外还可以添加-system-jpeg和-gif来提供对jpeg
和gif的支持.配置系统同时还支持对特定平台系统选项的添加.但一般来说,支持Virtual framebuffer的LINUX系统都可以使用"linux-generic-g++"平台.详情请见./configure --help命令.

第三步:生成可执行文件并且在Virtual framebuffer上运行,测试Qt桌面环境
/***************************************************************************************************
*
* 源代码生成可执行文件,并且在Virtual framebuffer上运行,此处Vitual framebuffer为qvfb
*
***************************************************************************************************/

一个源代码文件要能够在开发板上运行,首先应能够在Virtual framebuffer上显示出来,然后通过交叉编译在开发板上运行.
现我们有一个hello.cpp文件.如下:
/***************************************************************************************************
*
* hello.cpp
*
***************************************************************************************************/
#include<qapplication.h>
#include<qlabel.h>

int main(int argc,char **argv)
{
QApplication app(argc,argv);
QLabel *hello=new QLabel("Hello World!",0);
app.setMainWidget(hello);
hello->show();

return app.exec();
}
文件保存在/home/alpha/pro下
要在PC机上的Virtual framebuffer中显示结果,下面几步是必需的.
1.生成工程文件.pro
每个Qt程式都对应着一个工程文件,因为tmake工具要借此文件生成相应的Makefile文件提供给make进行编译联接.生成工程文件需要使用progen工具,位置在tmake-1.13/bin下,使用progen生成工程文件的方法如下:
A. 进入含有源文件的目录.如:cd /home/alpha/pro
B. 运行progen工具生成.pro文件.如 rogen -t app.t -o hello.pro
注意:-o 选项是指定输出文件的文件名.比如上面的生成的工程文件名是hello.pro,生成的这个.pro文件是可以修改的,可以编辑里面的头文件HEADERS,文件来源SOURCE等.
2.生成Makefile文件
Qt提供了生成Makefile文件的工具tmake,在tmake-1.13/bin目录下,可以根据不同平台的需要生成适合于不同平台的Makefile文件.
在使用tmake工具前,应查看相应的环境变量是否正确,由于我们要编译在PC机上运行的Qt程式,所以指定的编译器应该是含有"linux-x86-g++",在命令行里键入命令检查环境变量是否正确.
echo $TMAKEPATH
查看返回的结果的结尾字符是否是"...../qws/linux-x86-g++",如果不是的话应该重新设置TMAKEPATH.
export TMAKEPATH=tmake的安装路径($TMAKEPATH)/lib/qws/linux-x86-g++
注意:TMAKEPATH是指定tmake的位置,比如我的tmake安装在/qt/tmake-1.13下,我就设置TMAKEPATH为:
export TMAKEPATH=/qt/tmake-1.13/qws/linux-x86-g++
此外还要使QTDIR指向Qt/Embedded的安装路径,如:
export QTDIR=$QTEDIR
或者直接指定路径
export QTDIR=/qt/qt-2.3.10
注意:因为我的Qt/Embedded安装在/qt/qt-2.3.10下,所以才是export QTDIR=/qt/qt-2.3.10
完成了上面的环境变量的设置,并用echo命令检查无误后,就可以使用tmake工具来生成我们需要的Makefile文件了,键入命令
tmake -o Makefile hello.pro
注意:-o选项是指定生成的Makefile文件名为Makefile,tmake是用前面progen生成的工程文件.pro来生成Makefile文件的.完成上面的步骤后就可以在当前目录里生成一个Makefile文件了.
3.使用LINUX系统自带的make来进行整个程式的编译联接了,生成一个二进制的可执行文件hello.
进入含有刚才tmake生成的Makefile文件的目录,键入命令make,如:我生成的Makefile文件放在/home/alpha/pro下,就:
cd /home/alpha/pro
make
我再查看确认下,
在命令行下键入命令:
ls -lp /home/alpha/pro
结果果然生成了hello,结果如下:
-rwxr-xr-x 1 root root 76454 8月 2 10:32 hello
-rw-r--r-- 1 root root 245 8月 2 09:28 hello.cpp
-rw-r--r-- 1 root root 95300 8月 2 10:32 hello.o
-rw-r--r-- 1 root root 91 8月 2 10:32 hello.pro
-rw-r--r-- 1 root root 1615 8月 2 10:32 Makefile
注意:这几步可能要很高的权限,为避免不必要麻烦,我是用root用户来完成的.因为我在普通用户下是,会出现有的文件,库无法查看,加载.
4.在Virtual framebuffer运行程式.
A.进入含有生成的二进制文件的目录
B.运行qvfb来模拟Virtual framebuffer
C.在qvfb上加载二进制文件,运行程式.如:
cd /home/alpha/pro
qvfb -width 640 -height 480 &
/home/alpha/pro/hello -qws
注意:-width 640 -height 480是指定Virtual framebuffer模拟器的长为640橡素,宽为480像素.qvfb还有很多选项,详情请见qvfb --help命令.此步可能要先设置环境变量.使得系统能够找到qvfb,以及qvfb和程式运行时需要加载的库文件,也最好是用root用户登录,原因见前述.设置如下:
export QTDIR=$QTEDIR
export PATH=$QTDIR/binPATH
export LD_LIBRARY_PATH=$QTEDIR/libLD_LIBRARY_PATH
其中QTDIR和QTEDIR是指向Qt/Embedded目录的,也就是前面安装解压出来的qt-2.3.10,PATH是指向Qt/Embedded目录(也就是前面安装解压出来的qt-2.3.10)下的bin目录,因为哪里有我们要用到的qvfb程式,LD_LIBRARY_PATH是指向Qt/Embedded目录下的lib目录,(也就是前面安装解压出来的qt-2.3.10)下的lib目录,因为哪里有我们要用到的qvfb程式和二进制程式要加载的库文件.比如:libqte.so,libqte.so.2,libqte.so.2.3,libqte.so.2.3.10










我是按照以上的步骤安装的,出错如下
1。我想在黑屏下用qvfb,提示cannot connect to X server
2。make hello时报错   g++ -o hello hello.o -L/qt/qt-2.3.10/lib -L/usr/X11R6/lib -lqt -lXext -lX11 -lm
/usr/bin/ld :cannot find -lqt
collect2:ld returned /exit status
3 .我在终端上make出了hello,但运行时报错segmention default
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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