linux可以运行qt界面吗,基于Linux 安装与建立 Qt 桌面开发运行环境

基于Qt 桌面开发运行环境是本文呢文要介绍的内容,本人认为虚拟机是***的朋友,先来看本文介绍。

1.下载Qt

在TrollTech网站http://www.trolltech.com/developer/ 上搜索下载Qt的相关包,包括

qt-embedded-free-3.3.4.tar.gz

qt-x11-opensource-src-4.2.3.tar.gz

tmake-1.8.tar.gz    #可以不要,因为有现在这些高版本的qt-embedded,qt-x11,qtopia里就有qmake

这些都是***的Qt版本,编译过程好像跟查资料时的老版本的步骤有很大的不同,比如新版本使用qmake而不像以前使用tmake,还有configure脚本文件配置时的参数有许多变化,编译时没有什么资料可以查,除了trolltech本身的一些文档,剩下的只好自己摸索了。

2.安装与编译

假设我把这些包都放在 /root/qt 下

解压qt-x11-opensource-src-4.2.3.tar.gz

tar vxzf qt-x11-opensource-src-4.2.3.tar.gz

exportQT2DIR=$PWD/qt-x11-opensource-src-4.2.3     #设置一下环境变量

解压qt-embedded-free-3.3.4.tar.gz

tar vxzf qt-embedded-free-3.3.4.tar.gz

exportQTEDIR=$PWD/qt-embedded-free-3.3.4

解压tmake-1.8.tar.gz           #后来发觉一开始 tmake是没用的因为 2.0以上大版本有了qmake,不过开发的时候可以选择用的,比较方便。

exportTMAKEDIR=$PWD/tmake-1.8

然后就是编译了。

开始发现老是要设置环境变量,所以我专门各编辑一个脚本文件对 qt-x11-opensource-src-4.2.3和 qt-embedded-free-3.3.4进行编译,分别放在各自的目录中。

编译 qt-x11-opensource-src-4.2.3 时脚本为:

#!/bin/sh

exportQT2DIR=/root/qt/qt-x11-opensource-src-4.2.3

exportQTEDIR=/root/qt/qt-embedded-free-3.3.4

exportQTDIR=$QT2DIR

exportPATH=$QTDIR/bin:$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

./configure  -prefix-install -opengl

其实这里应该还可以设置更多多的选项,比如去掉一些支持,

可以缩短编译时间,因为这个工程编译完要用几个小时啊!

因为我需要的opengl的支持,所以选择了这个选项。

其他的可以通过./configure  --help 命令研究一下。

make

然后就可以干其他的事情了,编译时超痛苦,那个多文件阿,用了一上午才搞定,所以这时你可以尽情去玩一下了。

编译好之后还要去qt-x11-opensource-src-4.2.3/tools/qvfb编译 qvfb工具(这个工具编译qt-embedded有用),make一下就可以了。

然后就编译 qt-embedded-free-3.3.4,下面是的脚本:

#!/bin/sh

exportQT2DIR=/root/qt-x11-opensource-src-4.2.3

exportQTEDIR=/root/qt-embedded-free-3.3.4

exportQTDIR=$QTEDIR

exportPATH=$QTDIR/bin:$PATH

exportLD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

cp $QT2DIR/bin/uic $QTEDIR/bin/                                    #下面这两个工具编译时要使用

cp $QT2DIR/bin/qvfb $QTEDIR/bin/

./configure   -qconfig qpe -qvfb -depths 4,8,16,32

make

又是好长一段编译时间,大概一个小时左右。

3.在virtual framebuffer里运行程序

编译好后就可以尝试编译 运行examples/ 的例程了,但是编译这些例子的时候有个很奇怪的错误:

Some of the required modules (large-config) are not available

网上查了一下,幸亏查到了仅有一个提问,而且有人决绝了, 说要修改每个例子下的.pro文件,把 requires = large-config 这一行注释掉,但这一行原来真正有什么用,去掉后会有什么影响,我不得而知,不过编译后还是可以在virtual framebuffer上运行的。

编译好例子后就可以运行了,一开始运行例子的时候总会有一个错误:/usr/lib/qt-3.3/lib/fonts/fontdir  没找到什么的,我就奇怪了,我的qt并没有安装在这个目录的(按照上面的脚本文件),查看一下环境变量,居然有一个QTDIR非临时变量(在多个shell中都会显示的,应该在配置文件写死的)指向了这个目录,再进这个目录查看一下文件的日期,都是很久之前的,绝不是刚刚编译的,才知道这个是操作系统自带的qt。于是每次运行时qt程序时需要用export把QTDIR改掉,改成 $QTEDIR  同时也把 $QTEDIR/bin 添加到 PATH 中,因为 要用这个目录下的qvfb程序是 qt程序运行在virtual framebuffer上,运行时执行:

qvfb -width 640 -height 480 &

sleep 10                   #不知道这个有什么用?不过好像可以使qvfb在后台运行

./launcher -qws   #launcher是examples的一个例子

如果成功的话qt程序就会运行在qvfb的界面里。

4.编写自己的qt程序

下面可以自己编写自己的程序了。

先设置一下环境变量,我这个系统比较郁闷,有老的qt,所以好把QTDIR设置成新编译都目录,覆盖原来的,这个很重要,否则无法通过编译,这个弄了我一个晚上才发现。

首先修改环境变量

exportQTDIR=/root/qt-embedded-free-3.3.4                  #把老的qt覆盖

exportPATH=/root/qt-embedded-free-3.3.4/bin:$PATH   #要使用qmake程序

我编写了以下代码,hello.cpp,并把这个文件保存在名为hello的目录下

#include

#include

int main(int argc, char **argv)

{

QApplication app (argc, argv);

QLabel *hello=newQLabel("

HelloQt/Embedded!

", 0);

app.setMainWidget(hello);

hello->show();

return app.exec();

}

进入hello目录,生成.pro文件

qmake  -project

也可以用tmake-1.8/bin下的progen工具生成.pro文件,tmake其中的一个使用就是这里了,不过要把tmake-1.8/bin的完整路径加入到环境变量PATH中

修改hello.pro文件为

TEMPLATE=app

TARGET=hello

CONFIG=qtwarn_on release

DEPENDPATH= /root/qt-embedded-free-3.3.4/include

HEADERS=

SOURCES= hello.cpp

INTERFACES=

生成Makefile

qmake -o Makefile hello.pro

或者用

tmake -o Makefile hello.pro

然后

make

就可以了

qvfb -width 320 -height 240 &

sleep 10

./hello -qws

大功告成,你可以欣赏自己的Qt程序了。

小结:关于基于Linux安装与建立 Qt 桌面开发运行环境的内容介绍完了希望本文对你会有帮助!

【编辑推荐】

【责任编辑:李程站 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值