最近几天安装QT出现了一系列的问题,最终依靠强大的网络得以解决,有需要的可以参考!
QT为适应不同的平台开发了众多的安装包,ftp://ftp.qt.nokia.com/qt/source/我们选取qt-everywhere-opensource-src-4.7.3.tar.gz,该包可支持不同的硬件平台,只需在配置时添加不同的命令参数即可!
为了适应嵌入式的开发我们需要安装三个包,分别为PC机上的QT,嵌入式X86QT及嵌入式armQT,这里简单介绍一下,没有开发板的话第三个包是不需要安装的,嵌入式X86QT可以模拟arm平台下的QT应用程序,现在开始我们的安装之旅吧!
tar -zxvf qt-everywhere-opensource-src-4.7.3.tar.gz 解压QT安装包。
cp –r qt-everywhere-opensource-src-4.7.3 qt-everywhere-opensource-src-4.7.3-arm
cp –r qt-everywhere-opensource-src-4.7.3 qt-everywhere-opensource-src-4.7.3-x86
cd qt-everywhere-opensource-src-4.7.3
./configure
接下来弹出的选项按”o”和”yes”即可
make
make 会进行相当长的时间,睡一觉回来再搞其他的。
make install
之后会看到生成了 /usr/local/Trolltech/Qt-4.7.3目录。
修改环境变量。
vi /usr/local/Trolltech/Qt-4.7.3.setenv.sh
exportQTDIR=/usr/local/Trolltech/Qt-4.7.3
exportPATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
保存,之后source /usr/local/Trolltech/Qt-4.7.3.setenv.sh。
qmake –v 输出:
QMake version 2.01a
Using Qt version 4.7.3 in/usr/local/Trolltech/Qt-4.7.3/lib
表示QT安装成功。
下面来编写一个简单的QT测试程序Hello.cpp
#include <QApplication>
#include <QLabel>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}
在该文件所在目录中执行qmake –project命令可以看到所在文件夹下生成了HelloQT.pro它是与平台无关的工程文件。在该目录下qmakeHelloQT.pro同目录下有 Makefile文件被生成(Makefile是指导编译器编译源代码的配置文件,在其目录下输入make命令(nmake在win32,vc6环境)就可以完成编译)。之后make可看到生成了可执行文件Hellotest。./Hellotest -qws一个helloqt的界面出现了。
安装qvfb
cd qt-everywhere-opensource-src-4.7.3/tools/qvfb
make
之后生成了qvfb默认在qt-everywhere-opensource-src-4.7.3的bin目录下。安装过程中可能出现如下错误。
错误:deviceskin.h:没有那个文件或目录,在ubuntu下:
apt-get install xorg-dev
make
redhat下挂载光盘:rpm -ivh libXtst-devel-1.0.99.2.-3.el6.i686.rpm
make
安装嵌入式X86嵌入式平台的QT
cd qt-everywhere-opensource-src-4.7.3-x86
./configure -embedded x86 -qt-gfx-qvfb -qt-kbd-qvfb-qt-mouse-qvfb
make
make install
之后生成了/usr/local/Trolltech/QtEmbedded-4.7.3
将上一节生成的qvfb拷贝到/usr/local/Trolltech/QtEmbedded-4.7.3/bin目录下,这样就可以在x86环境下模拟开发板中的QT开发了,当然设置环境变量是必须的。
vi /usr/local/Trolltech/QtEmbedded-4.7.3/setenv.sh
exportQTDIR=/usr/local/Trolltech/QtEmbedded-4.7.3
exportPATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
cd /usr/local/Trolltech/QtEmbedded-4.7.3
source setenv.sh
cd demos/books
qvfb -width 640 -height 480 &
这里出现一个空的图片,不要关闭它!
./books -qws
至此一切OK你会看到books程序在qvfb中的运行效果!
安装arm平台的QT
cd qt-everywhere-opensource-src-4.7.3-arm
./configure -opensource -embedded arm -xplatform qws/linux-arm-g++ -no-webkit -qt-libtiff-qt-libmng -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp-I/usr/local/tslib/include -L /usr/local/tslib/lib
这里最后的两个目录即为安装tslib产生的,为支持触摸屏tslib安装很简单这里不再累赘。
./configure有相当多的命令可以通过./configure –help 查看。-embedded即指平台为arm。
make
makeinstall
之后在生成了/usr/local/Trolltech/QtEmbedded-4.7.3-arm目录
该目录下有一些qT自带的测试程序大家可以运行一下看看效果。为了编译arm平台下的QT应用这里我们仍然需要设置环境变量方法参照上面。之后按照上面编译QT程序的方法编译即生成了开发板上可以运行的QT程序。当然要是开发板能运行QT还需要做以下工作。
将/usr/local/Trolltech/QtEmbedded-4.7.3-arm拷贝到开发板的/usr/local/Trolltech目录下并设置环境变量vi setenv.sh
exportQTDIR=/usr/local/Trolltech/QtEmbedded-4.7.3-arm
exportPATH=$QTDIR/bin:$PATH
exportLD_LIBRARY_PATH=$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
exportTSLIB_TSDEVICE=/dev/input/event1
exportTSLIB_CONFFILE=/usr/local/etc/ts.conf
exportTSLIB_PLUGINDIR=/usr/local/lib/ts
exportTSLIB_CALIBFILE=/etc/pointercal
exportQWS_MOUSE_PROTO="TSLIB:/dev/input/event1 USB:/dev/input/mice"
exportQWS_SIZE='480x272'
exportQWS_KEYBOARD=TTY:/dev/tty1
在开发板上执行source setenv.sh如果开发板已运行QT2.2请关闭,QT4.X与2.x不兼容。
之后运行我们的QT程序,记得要加上-qws这个命令参数哦!
至此全部工作安装完成!下一篇为集成开发环境的安装!