qt安装1.docx
《qt安装1.docx》由会员分享,可在线阅读,更多相关《qt安装1.docx(11页珍藏版)》请在冰点文库上搜索。
qt安装1
一.Qt4.4.3安装方法:
在这里我列举两种安装方法,经过我尝试,这两种方法都可以成功安装qt4.4.3,但是由于要把qt移植到开发板,所以个人推荐第二种安装方法,第一种方法未必不适合移植,但没有试过,有兴趣的读者可以自己尝试。
1.方法一:
PC所用Linux系统版本:
Fedora10
Qt/Embedded版本:
qt-embedded-linux-opensource-src-4.4.3
Qt/X11版本:
qt-x11-opensource-src-4.4.3
(这两个版本在官网上都有下载)
整个安装过程,其实也就时几个指令的问题:
------>解压缩Qt/Embedded,指令tarzxvfqt-embedded-linux-opensource-src-4.4.3.tar.gz
------>为以后方便观看,可将解压缩后的文件夹重命名为qte:
mvqt-embedded-linux-opensource-src-4.4.3qte
------>进入qte文件夹,进行配置,我的指令是:
./configure-prefix/opt/qte-qt-mouse-linuxtp-qvfb
(其中-qvfb是必须的,否则你编译完后发现自己的Qt/E连qvfb调试器都不支持,白忙活一场,
-prefix/opt/qte是指将最终编译得到的各种工具,如qvfb,qmke,designer等以及库都安装在指定路径/opt/qte,当然这个选项你也可以不写,如果你不写的话系统编译后会自动帮你创建一个/usr/local/trolltech/qt...目录,上面所说的文件就都安装在这个目录下了;但是如果你要安装在指定目录下的话,必须要先手动创建这么一个目录,如我这个就必须先在执行./configure命令之前先创建/opt/qte目录,否则会出错,又白忙活了。
如果你还要用到数据库mysql等其他一些内容的时候,一定要看./configure--help帮助文档,必要时可以先测试一下这个选项,如果只有一个选项的话,configure是很快的,特别是有错误发生的时候)
整个安装过程大概就只有./congigure是又技术含量的,其他的就没什么好操作的了,接着的步骤:
--------->make(相当漫长的过程)
---------->makeinstall(很多网上的帖子都没这一步,如上面所说,这一步就是将编译后的各种工具、库等安装到你先前指定的目录)
---------->设定环境变量(这是新手很头疼的问题,其实弄清楚后也挺简单的,就是给你的指令指定一个可执行的路径,具体实现为:
在你的用户目录下【若为管理员账户,则为/root,若为普通用户,则在/home/你的用户名】,修改.bashrc文件。
打开.bashrc文件,在文件末尾添加这么几行
exportQTDIR=/opt/qpe
exportQTEDIR=$QTDIR
exportPATH=/opt/qte/bin:
$PATH
exportLD_LIBRARY_PATH=opt/qte/lib:
$LD_LIBRARY_PATH
保存,搞定。
这样,以后你只要在终端输入qmake或make或designer等指令就可以直接使用qmake等工具了,而不再需要进入到/opt/qte/bin里面来执行./qmake了,这就是环境变量的作用。
)
Qt/Embedded的安装到此告一段落,接着轮到Qt/X11,这个就简单多了,因为它在./configure时没什么要求。
----------->解压缩,tarzxvf.....
----------->更改解压缩后的文件名为qt(仅仅是为了个人方便):
mv....qt
------------>进入qt文件夹,执行./configure-prefix/opt/qt-qvfb
------------->make(更加漫长的过程)
-----------makeinstall
------------>进入到解压缩文件夹qt里的tool/qvfb目录,输入make
------------>将qt文件夹里的bin/qvfb复制到/opt/qte/bin目录下
最后两个步骤是为了生成qvfb。
用于调试程序,可进入到qte/demos/chip下,调试一个例程看看qvfb是否已经安装成功。
#qvfb&
#./chip-qws
便会看到qvfb上显示有相关例程的图像了。
到此,安装过程全部结束
如果在.配置指令/configure……执行后,发生错误,可以进入到解压缩文件目录(如qt/,qte/),执行makeclean便可将前面所有的配置都清除掉。
在qt和qtemakeinstall完后,可执行makeclean将中间生成的许多.o文件清楚,这些临时文件要占很大一部分空间。
--------------------------------------------------------------------------------------------------------------------------------------------
2.方法二:
由于qt4.4.3分为Qt/Embedded和Qt/X11两部分,本方法中Qt/X11的安装编译方法与方法一中一致,读者可自行参考方法一。
下面重点介绍Qt/Embedded的安装,为了以后便于向开发板移植,我们在编译Qt/Embedded前编译安装触摸屏的库文件tslib-1.4
(1)安装tslib-1.4
这是个触摸屏的库文件,据网上说qt4只支持tslib-1.4。
我没有实验别的,就用了这个,可以成功。
把tslib-1.4.tar.gz放到/home目录下
#tarxvzftslib-1.4.tar.gz
#cdtslib
#./autogen.sh
#./configure--prefix=/home/mytslib/--host=arm-linuxac_cv_func_malloc_0_nonnull=yes
#make
#makeinstall
这样以后可以看到/home/mytslib/下有了库文件,移植时会用到!
先不详细说明。
(2)安装qt-x11-linux-opensource-src-4.4.3.tar.gz
把qt-embedded-linux-opensource-src-4.4.3.tar.gz放到/tmp目录下
在安装qt-embedded-linux-opensource-src-4.4.3.tar.gz之前先在根目录下建立两个目录(即文件夹)如下步骤:
#cd/进入根目录
#mkdirmini2440这里准备存放qt-embedded-linux-opensource-src-4.4.3的库文件
最后要移植到开发板的。
#mkdirtslib这里准备放触屏的库文件,最后也会移植到开发板。
好了,现在安装qt-embedded-linux-opensource-src-4.4.3.tar.gz
#cd/tmp确定qt-embedded-linux-opensource-src-4.4.3.tar.gz放到/tmp目录下了才行
#tarxvzfqt-embedded-linux-opensource-src-4.4.3.tar.gz
#cdqt-embedded-linux-opensource-src-4.4.3.
#./configure-prefix/mini2440-release-shared-fast-pch-no-qt3support-qt-sql-sqlite-no-libtiff-no-libmng-qt-libjpeg-qt-zlib-qt-libpng-qt-freetype-no-openssl-nomakeexamples-nomakedemos-nomaketools-optimized-qmake-no-phonon-no-nis-no-opengl-no-cups-no-xcursor-no-xfixes-no-xrandr-no-xrender-no-xkb-no-sm-no-xinerama-no-xshape-no-separate-debug-info-xplatformqws/linux-arm-g++-embeddedarm-depths16-no-qvfb-qt-gfx-linuxfb-no-gfx-qvfb-no-kbd-qvfb-no-mouse-qvfb-qt-kbd-usb-confirm-license-qt-mouse-linuxtp-qvfb-I/home/duancp/mytslib/include-L/home/duancp/mytslib/lib
mini2440内的空间有限,所以剪裁很多,注意最后的红色部分是为了找到触屏的库文件,然后
#gmake
#gmakeinstall
这样,嵌入式版本的qt4也装成功了,若想进行交叉编译,首先也得改变环境变量,所以也可以在当前目录下建一个环境变量的文件setenv-embedded.sh如下:
#geditsetenv-embedded.sh
这时跳出一个编辑文本输入:
PATH=/mini2440/bin:
$PATH
QTDIR=/mini2440
MAINPATH=$QTDIR/man:
$MAINPATH
LD_LIBRARY_PATH=$QTDIR/lib:
$LD_LIBRARY_PATH
exportPATHQTDIRMAINPATHLD_LIBRARY_PATH
保存退出。
每次进行qt4-embedded的交叉编译前先#sourcesetenv-embedded.sh
到目前为止,两个版本的qt4在PC机上的安装算是结束了,下一步要移植嵌入式的qt4库文件到开发板。
二.Qt4.4.3移植方法:
前面介绍了在根文件系统下建立两个目录mini2440和tslib1.4.经过第5步后,mini2440内已经有了库文件,现在把触屏的库文件移植到tslib目录。
#cd/home/mytslib进入触屏库文件所在地
#cp-frlib/tslib把lib目录放到根目录的tslib目录下
在根文件的mini2440文件中除了有lib目录,还有bin,examples等目录,但是移植到开发板的文件只需要mini2440下的lib目录。
Lib目录有30多兆,若太大,可以删除/lib/fonts中的一些字体!
首先,在超级终端下操作开发板,在开发板的根目录下建立两个目录mini2440和tslib,一样的方法:
#mkdirmini2440注意这是对开发板的操作,不再是PC机了!
#mkdirtslib
然后,不你是用什么方法,要把PC机根目录下/mini2440里的lib目录(整个文件件)(其他的如bin等都不用)全部拷到开发板根目下的/mini2440中,同理把要把PC机根目录下/tslib里的lib目录(整个文件件)全部拷到开发板根目下的/tslib中.
你可以用串口传输,或者优盘传输,或者nfs等,最终的效果是开发板根目录下的/mini2440中有QT4的lib,/tslib有触屏的lib.
最后,就是设置开发板的环境变量了:
在超级终端里的命令行下输入:
#exportQTDIR=/mini2440
#exportT_ROOT=/tslib
#exportPATH=$QTDIR/bin:
$PATH
#exportTSLIB_CONSOLEDEVICE=none
#exportTSLIB_FBDEVICE=/dev/fb0
#exportTSLIB_TSDEVICE=/dev/input/event0
#exportTSLIB_PLUGINDIR=$T_ROOT/lib/ts
#exportTSLIB_CONFFILE=$T_ROOT/etc/ts.conf
#exportTSLIB_CALIBFILE=/etc/pointercal
#exportQWS_MOUSE_PROTO=tslib:
/dev/input/event0
#exportLD_LIBRARY_PATH=$T_ROOT/lib:
$QTDIR/lib
到目前位置,这个移植过程算是结束了,这样就可以成功了!
三.利用Qt4.4.3编写程序及编译的方法:
虽然qt4没有成功移植到mini2440开发板上,但是以下关于qt4.4.3的编译方法是正确的,可以用qvfb仿真。
在这里针对之前Qt/Embedded的两种安装方法,这里也有两种编译方法,分别和之前两种方法对应。
个人推荐第二种方法。
方法一:
1.利用./designer设计一个ui界面,保存到/root目录,命名为hu.ui
2.设置qmake环境
exportQTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/
exportPATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/bin/:
$PATH
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/lib/:
$LD_LIBRARY_PATH
3.将hu.ui导出头文件,uichu.ui-ohu.h
4.添加main.cpp文件如下
#include
#include
#include
#include"hu.h"//只需要改这句,改为你所编写的程序的名称xx.h
classWin:
publicQMainWindow,publicUi:
:
MainWindow
{
public:
Win(QMainWindow*parent=0):
QMainWindow(parent)
{setupUi(this);}
};
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
Winw;
w.show();
returna.exec();
}
5.然后生成.pro工程文件和Makefile文件
qmake–project//千万看清这里有个空格
qmakehu.pro
6.最后make
将生成的执行文件通过QVFB测试
方法二
例子helloworld!
A,PC机下编译:
进入PC机中/opt/qt-x11-linux-opensource-src-4.4.3
#cd/opt/qt-x11-linux-opensource-src-4.4.3
#sourcesetenv-x11.sh改变环境变量,设置为适合pc机的开发环境
#mkdirhello
#cdhello进入hello目录
#vihello.cpp编写helloworld程序,在hello.cpp中输入以下代码:
#include
#include
intmain(intargc,char*argv[])
{
QApplicationapp(argc,argv);
QPushButtonb("HelloWorld!
");
b.show();
QObject:
:
connect(&b,SIGNAL(clicked()),&app,SLOT(quit()));
returnapp.exec();
}
保存退出。
然后在当前目录下继续执行以下命令:
#qmake-project
#qmake
#make
#ls
这时在这个目录下可以看到生成了可执行文件hello,然后
#./hello
你会发现,跳出了一个helloworld的对话框,这样一个简单的界面就成功了
B,交叉编译
首先把/opt/qt-x11-linux-opensource-src-4.4.3下的hello目录拷到/tmp/qt-embedded-linux-opensource-src-4.4.3目录下
#cp-fr/opt/qt-x11-linux-opensource-src-4.4.3/hello/tmp/qt-embedded-linux-opensource-src-4.4.3
#cd/tmp/qt-embedded-linux-opensource-src-4.4.3
#sourcesetenv-embedded.sh这一步很关键,否则你交叉编译不了,改变的环境变量
#cdhello
#makeclean
#qmake-project重新生成.pro
#qmake重新生成适合交叉编译的Makefile
#make
#ls
这时候,你发现有hello的可执行文件,原来的hello已经被替换掉了,现在这个hello文件是适合开发板运行的!
这时候你如果执行./hello是不会有界面的,把它放到开发板的文件系统下才会有界面(前提是设置好了开发板的环境变量)
四.Qt2编译全流程:
1.用designer编写ui文件
2.Source/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/setQpeEnv
#这里要注意qt的安装路径
3.uicxxx.ui-oxxx.h
uicxxx.ui-ixxx.h-oxxx.cpp
4.可以gedit生成main.cpp,内容可以参考hello里的main.cpp
main.cpp应包括如下内容:
#include"hello.h"
#include
QTOPIA_ADD_APPLICATION("hello",Form1)
QTOPIA_MAIN
5.Qmake–project(这里有个空格,勿忘)
6.修改.pro文件,在input前加入
CONFIG+=qtopiaapp
CONFIG-=buildQuicklaunch
DESTDIR=$(QPEDIR)/bin
Input后加入
TARGET=.pro名称
(详见hello例子的.pro文件写法,这里的.pro写法是我试出来的,仅是个人想法)
7.qmake-spec/opt/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++-oMakefile*.pro#这里要注意qt的安装路径
8.Make
9.编写.desktop文件,详见mini2440例子
.desktop写法
[DesktopEntry]
Comment=AnExampleProgram
Exec=hello
Icon=Hello#这里要写自己的程序名称
Type=Application
Name=Hello2440
10.拷到开发板,rz指令,详见mini2440pdf
其中qt2的安装编译可以参考mini2440的pdf,由于mini2440开发板上本身自带qt2,所以不必移植。