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

绝对详细的QT编译安装教程

2012-03-23 16:22 495 查看
绝对详细的QT编译安装教程

本帖最后由 李张杰 于 2011-4-1 22:59 编辑

10 .QT

10.1 qt的源码编译

安装编译源码的所需工具和库
X11:
1. apt-get install
libX11-dev libXext-dev libXtst-dev
2. apt-get install xorg-dev
3.
apt-get install libtool
4. apt-get install
autoconf
5. apt-get install
g++

ARM:
1

apt-get install

qt3-dev-tools
apt-get install

qt4-qmake

2
安装触屏支持库tslib-1.4
tar -zxvf

tslib-1.4.tar.gz
cd tslib进入tslib目录下,目录内容如图10-1所示:





下载
(53.58 KB)

2011-4-1 22:44

图10-1 tslib
./autogen.sh
该shell脚本的正确的执行过程如图10-2所示:





下载
(135.83 KB)

2011-4-1 22:45

图 10-2 autogen.sh执行过程

设置环境变量
CC=arm-linux-gcc
将ac_cv_func_malloc_0_nonnull=yes重定向输入到arm-linux.cache
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

执行configure文件
./configure --prefix=/opt/ts/ --host=arm-linux --cache-file=arm-linux.cache
执行make编译
make
执行make install
安装
make install

检验是否安装成功,在/opt/ts/下面存在的四个文件夹,则安装成功,如图10-3所示:





下载
(22.31 KB)

2011-4-1 22:46

图10-3 ts安装目录

X11版本编译安装过程:
第一步:解压
工程路径:/home/lizhangjie/install
目标文件:qt-everywhere-opensource-src-4.6.3.tar.gz

通过tar命令将目标文件解压到工程路径下:
tar –zxvf
qt-everywhere-opensource-src-4.6.3.tar.gz
注意:tar.bz2结尾的压缩文件才会用到-jxvf
参数。

解压之后会得到文件夹qt-everywhere-opensource-src-4.6.3,编译该源码得到的最终是X11版本的,我们后面还要编译ARM版本。

第二步:执行configure文件

我们首先的通过执行configure文件,让系统按照configure文件生成各级Makefile。cd
qt-everywhere-opensource-src-4.6.3,qt-everywhere-opensource-src-4.6.3文件夹下的内容,如图10-3所示:





下载
(83.44 KB)

2011-4-1 22:48

图10-3
qt-everywhere-opensource-src-4.6.3
执行完configure命令之后,直接make进行编译,时间大约2.5小时。最后执行make
install。
以上三个命令执行完之后,可以在/usr/local/Trolltech/查看是否有文件夹Qt-4.6.3,有则说明已经编译并安装成功,如图10-4所示:





下载
(27.46 KB)

2011-4-1 22:48

图10-4
安装目录

ARM版本的编译:
第一步:解压
通过tar命令将目标文件解压到工程路径下:
tar –zxvf
qt-everywhere-opensource-src-4.6.3.tar.gz

通过命令mv
qt-everywhere-opensource-src-4.6.3 qt-embeded-opensource-src-4.6.3-arm
我们需要的是qt-embeded-opensource-src-4.6.3-arm文件夹。图10-5所示:





下载
(41.91 KB)

2011-4-1 22:49

图 10-5 qt-embeded-opensource-src-4.6.3-arm

第二步:执行configure文件
./configure -prefix /usr/local/Trolltech/Qt-4.6.3-arm -release -shared -fast -xplatform qws/linux\
-arm-g++ -embedded arm -depths 16 -no-qvfb -no-qt3support -qt-sql-sqlite -qt-zlib -qt-libpng -qt-\
freetype -qt-mouse-tslib -no-mouse-pc -no-mouse-linuxtp -nomake examples -nomake demos -nomake docs -nomake tools -I/opt/ts/include
-L/opt/ts/lib





下载
(47.37 KB)

2011-4-1 22:50

图 10-6
configure 成功
执行完configure命令之后,还需要修改三个文件:
cd
qt-embeded-opensource-src-4.6.3-arm
1. /src/3rdparty/freetype/include/freetype/config/ftconfig.h
330行

"orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */

复制代码

2.
/src/3rdparty/webkit/WebCore/Makefile
14行和15行
-D__ARM_ARCH_4T__





下载
(31 KB)

2011-4-1 22:51

图 10-7 Makefile修改
3. /src/script/Makefile
14行和15行
-D__ARM_ARCH_4T__

第三步:make编译和make
install安装
直接make进行编译,时间大约2.5小时。最后执行make
install。以上三个命令执行完之后,可以在/usr/local/Trolltech/查看是否有文件夹Qt-4.6.3-arm,有则说明已经编译并安装成功,如图10-8所示:





下载
(29.77 KB)

2011-4-1 22:51

图10-8 Qt-4.6.3-arm

10.2
第一个qt工程

第一步:设置qmake的编译版本
X11
在/usr/local/Trolltech/
Qt-4.6.3 创建setenv.sh,编辑添加的内容为:

#!/bin/bash

QTDIR=/usr/local/Trolltech/Qt-4.6.3

PATH=$QTDIR/bin:$PATH

LD_LIBRARY_PATH=$QTDIR/lib:/opt/ts/lib:$LD_LIBRARY_PATH

复制代码

然后执行source setenv.sh。

第二步:创建工程目录并qmake编译
工程目录:/home/lizhangjie/qt/helloworld
创建hello.cpp的C++源文件,编辑内容:
#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

qmake

make

ARM
在/usr/local/Trolltech/
Qt-4.6.3-arm 创建setenv.sh,编辑添加的内容为:

#!/bin/bash<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

QTDIR=/usr/local/Trolltech/Qt-4.6.3-arm

PATH=$QTDIR/bin:$PATH

LD_LIBRARY_PATH=$QTDIR/lib:/opt/ts/lib:$LD_LIBRARY_PATH

复制代码

然后执行source setenv.sh。

在开发板上创建/opt/文件夹
将linux上/opt/ts拷贝到开发板的/opt/下,然后进入./ts/etc/ts.conf修改第二行,将#号和空格去掉,如图所示:





下载
(19.46 KB)

2011-4-1 22:52

进入到/usr/local/Trolltech/Qt-4.6.3-arm/lib
通过命令

cp XXXXXX -d /utuLinux2.6/s3c2440_recover/usr/local/Trolltech/Qt-4.6.3-arm/lib
将linux本机上的四个库文件及其相关的连接符号文件一起考到开发板的文件夹下。(-d
参数会同时修改链接符号文件指向)。
XXXXXX

libQtCore.so.4.6.3

libQtSql.so.4.6.3
libQtNetwork.so.4.6.3
libQtGui.so.4.6.3

实例:
cp libQtCore.so* -d

/utuLinux2.6/s3c2440_recover/usr/local/Trolltech/Qt-4.6.3-arm/lib/

修改添加开发板/etc/profile

export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH

export QTDIR=/usr/local/Trolltech/Qt-4.6.3-arm

export QPEDIR=$QTDIR

export T_ROOT=/opt/ts

export PATH=$T_ROOT/bin:$PATH

export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/event0

export TSLIB_PLUGINDIR=$T_ROOT/lib/ts

export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf

export TSLIB_CALIBFILE=/etc/pointercal

export QWS_KEYBOARD=USB:/dev/input/event1

export QWS_MOUSE_PROTO=Tslib:/dev/event0

export QWS_DISPLAY=LinuxFb:mmWidth45:mmHeight60:0

export QWS_SIZE=320x240

复制代码

然后qmake –project
qmake
这里需要修改Makefile:
修改当前生成的Makefile
在19行的最后加上
-lts
LIBS

= $(SUBLIBS)

-L/usr/local/Trolltech/Qt-4.6.3-arm/lib -lQtGui -L/opt/ts/lib -L/usr/local/Trolltech/Qt-4.6.3-arm/lib -lQtNetwork -lQtCore -lpthread
–lts

进到开发板的lib库下面
cd
/lib

ln -s
libstdc\+\+.so.60.0.3
libstdc\+\+.so.6

并且在开发板根目录下面创建/tmp/目录

make
执行可执行文件时要在后面加上 –qws

FAQ:

1

执行自己的qt程序之前,请先执行/opt/ts/bin/ts_calibrate校准触摸屏,不然自己的qt程序不能使用触摸屏,会提示:Could
not read calibration: "/etc/pointercal"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: