您的位置:首页 > 编程语言 > Qt开发

搭建 Qt-x11 环境 和 4.5.3移植

2010-02-26 21:21 218 查看
 

QT的安装办法有很多,百度一下有一大堆,但是大部分的手册都是复制粘贴的,并不能使用。
      具体的安装办法:

      1、去这里下载Qt 4.4.0 for X11 OpenSource版。
      2、下载过来的是 qt-x11-opensource-src-4.4.0.tar.gz 文件,我们用tar命令解压一下。

      tar zxvf qt-x11-opensource-src-4.4.0.tar.gz

      3、把这个目录移到/usr/local目录下,或者不移,放在/home目录也无所谓,下面的安装过程是把这个目录移到/usr/local目录下,改名为qt,如果您没有移动,在设置的时候注意目录。
      4、修改(可以使用vi编辑器或者gedit)自己目录下的.bash_profile 或者 .profile或者是/etc/profile这个文件,加入下面的代码:

QTDIR=/usr/local/qt
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD_LIBRARY_PATH

 

      5、注销一下用户或者 source .bash_profile 一下,使配置文件生效。
      6、进入QT的目录,开始编译

      ./configure

 

      输入yes同意GPL/QPL协议。
      在网络上还看到这个命令 ./configure -thread,为了支持多线程,大家还是敲一下这些命令好了。(不知道./configure -thread 和 ./configure 命令有没有重复)

      7、开始make 这步要一两个小时
              make

      8、开始install  (网上的一些手册没有这步,会出现 error while loading shared libraries: libQTDesignerComponents.so4 错误,我make install一下之后,就OK了。)这步也要挺久的,大概几十分钟吧。
           make install 
 
      9、进入QT的目录,进入bin目录,然后运行 ./designer,大家可以看到图形界面了吧。
 
 
 
 
 

转载】http://www.qtcn.org/bbs/read.php?tid=22687
 
1.安装交叉编译环境  (是ubantu 不是redhat)

a..下载arm-linux-gcc-3.4.1.tar.bz2(建议用的这个版本的,有些低版本的交叉编译工具在编译时会出错) 
arm-linux-gcc-3.4.1.tar.bz2 的下载地址如下: 
http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2 

b.解压 arm-linux-gcc-3.4.1.tar.bz2 
  #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2 
  解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下 
  # cd usr/local/ 
  #cp -rv arm /usr/local/ 
  现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了 

c. 修改环境变量,把交叉编译器的路径加入到PATH。(有三种方法,这里只写一种) 
# vi ~/.bashrc 
在最后加上: 
export PATH=$PATH:/usr/local/arm/3.4.1/bin 

d. 立即使新的环境变量生效,不用重启电脑 
#source ~/.bashrc 

e.检查是否将路径加入到PATH: 
   # echo $PATH 
  显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。 

f.测试是否安装成功 
# arm-linux-gcc -v 
上面的命令会显示arm-linux-gcc信息和版本,这是我显示的信息: 
 Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs 
 Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc- 3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu 

 --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm 

 -linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable 

 -nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable- languages=c,c++ --enable-shared --enable-c99 --enable-long-long 
 Thread model: posix 
 gcc version 3.4.1 

到这里就成功安装好了交叉编译环境 

2.安装qt-x11 

进入下载页面:选择Download Qt libraries 4.5 for Linux/X11(120 Mb) 
# aptitude install libxtst-dev 
# tar -zxvf qt-x11-opensource-src-4.5.3.tar.gz 
# cd qt-x11-opensource-src-4.5.3 
# ./configure 
# make 
# make install 
qt-x11 被安装到此目录下/usr/local/Trolltech/Qt-4.5.3 
编译qvfb: 
# cd qt-x11-opensource-src-4.5.3/tools/qvfb 
# make 
至此,qt-x11安装完毕完毕 

3.安装qt-embedded 

选择支持arm的体系结构 
# tar -zxvf qt-embedded-linux-opensource-src-4.5.3.tar.gz 
# cd qt-embedded-linux-opensource-src-4.5.3 
#./configure -embedded arm -xplatform qws/linux-arm-g++ -no-qt3support -qt-mouse-linuxtp(我自己的设置,你可以通过查看./configure -help来设置) 
#make 
#make install 
qt-embeded 被安装在这个目录下/usr/local/Trolltech/QtEmbedded-4.5.3-arm 或者是/usr/local/Trolltech/QtEmbedded-4.5.3-generic 
一般在/usr/local/Trolltech/QtEmbedded-4.5.3-arm 
这里你可以新建一个set-env.sh文件 
把下面复制到文件中 
export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.3-arm 
export PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-arm/bin:$PATH 
exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-arm/lib:$LD_LIBRARY_PATH 
每次用的时候进行设置 
#. set-env.sh 或者是 source set-env.sh 

安装qt-embed请参考我的这个帖子:http://www.qtcn.org/bbs/read.php?tid=22600

4.移植到开发板 

下面通过NFS方式来测试是否成功(你必须提前配置好nfs) 
先准备好2个nfs目录,取名为nftsroot 
一个是用来备用的,取名为fonts 

a.准备库和字体 
#cp -a /usr/local/Trolltect/QtopiaCore-4.3.0-arm/lib /nfsroot 
然后在usr/local/Trolltect/QtopiaCore-4.3.0-arm里面收索到这些库 
librt.so,librt.so.1,libstdc++.so,libstdc++.so.6,libstdc++.so.6.0.1 
笔者就是在运行时就提示要这些库,所有大家还是先准备好来,然后复制到/nfsroot/lib里 
#ls /nfsroot/lib 
fonts libQtScript.prl libQtSvg.so.4.5.3 
libgcc_s.so libQtScript.so libQtTest.la 
libgcc_s.so.1 libQtScript.so.4 libQtTest.prl 
libQtCore.la libQtScript.so.4.5 libQtTest.so 
libQtCore.prl libQtScript.so.4.5.3 libQtTest.so.4 
libQtCore.so libQtScriptTools.la libQtTest.so.4.5 
libQtCore.so.4 libQtScriptTools.prl libQtTest.so.4.5.3 
libQtCore.so.4.5 libQtScriptTools.so libQtXml.la 
libQtCore.so.4.5.3 libQtScriptTools.so.4 libQtXml.prl 
libQtGui.la libQtScriptTools.so.4.5 libQtXml.so 
libQtGui.prl libQtScriptTools.so.4.5.3 libQtXml.so.4 
libQtGui.so libQtSql.la libQtXml.so.4.5 
libQtGui.so.4 libQtSql.prl libQtXml.so.4.5.3 
libQtGui.so.4.5 libQtSql.so librt-2.3.2.so 
libQtGui.so.4.5.3 libQtSql.so.4 librt.so 
libQtNetwork.la libQtSql.so.4.5 librt.so.1 
libQtNetwork.prl libQtSql.so.4.5.3 libstdc++.so 
libQtNetwork.so libQtSvg.la libstdc++.so.6 
libQtNetwork.so.4 libQtSvg.prl libstdc++.so.6.0.1 

libQtNetwork.so.4 libQtSvg.prl libstdc++.so.6.0.1 
libQtNetwork.so.4.5 libQtSvg.so pkgconfig 
libQtNetwork.so.4.5.3 libQtSvg.so.4 
libQtScript.la libQtSvg.so.4.5 
当然这些库文件不是每个都需要,用户可以根据自己的应用来选择 

接下来将开发板和主机通过网线连接起来,并在开发板里进行mount 
#mount -t nfs 192.168.0.10:/nfsroot /mnt -o nolock 
#ls /mnt 
lib 
接下来事字体(在lib目录的fonts),字体比较麻烦, 
根据文档说明,Qtopia默认查找字体的目录是/usr/local/Trolltech/QtEmbedded-4.5.3/lib/fonts 
我们有两种方式来挂载字体库。 
第一种: 

#mount -t ramfs ramfs /usr 
#cd /usr 
#mkdir local && mkdir local/Trolltech 
#ln -s /mnt local/Trolltech/QtEmbedded-4.5.3-arm 
#ls /usr/local/Trolltech/QtEmbedded-4.5.3-arm/lib/fonts 
这样我们就配置好了。 

如果上一种方法不行,看下面这种,一定可以! 

第二种: 

首先用到刚才的备用的nfs目录 fonts(看名字就晓得用来挂载字体库的) 
#cp -arf /usr/local/Trolltect/QtEmbedded-4.5.3-arm/lib/fonts /fonts 
在开发板里 
#mkdir /usr/local && mkidr /usr/local/Trolltech &&mkdir /usr/local/Trolltech/QtEmbedded-4.5.3-arm   &&/usr/local/Trolltech/QtEmbedded-4.5.3-arm/lib
#mount -t nfs 192.168.0.10:/fonts /usr/local/Trolltech/QtEmbedded-4.5.3-arm/lib   -o nolock 
这样就把字体库链接到 /usr/local/Trolltech/QtEmbedded-4.5.3/lib/fonts目录来了 

第二种方法是我同学想出来的,很不错吧, 
他的博客是:http://hi.baidu.com/armlinuxhouse/blog/item/c2fb91ca42b0811d7f3e6f10.html 

里面有很多好的文章! 

4.交叉编译Hello World 程序 
首先写一个hello.cpp的程序 
#qmake -project 
#qmake 
得到一个hello的arm可执行程序(通过file命令来查看它所属的cpu) 
并将该 
#cp hello /nfsroot 

然后在超级终端里运行 
#export LD_LIBRARY_PATH=/mnt/lib:$LD_LIBRARY_PATH 
#cd /mnt 
#./hello -qws 

这样就能看到你的运行程序了!
 
 
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息