Ubuntu下QT源码编译详细过程

更新时间:2024-03-22 00:22:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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所示:

图10-1 tslib ./autogen.sh

该shell脚本的正确的执行过程如图10-2所示:

图 10-2 autogen.sh执行过程

设置环境变量 CC=arm-linux-gcc

讲ac_cv_func_malloc_0_nonnull=yes重定向输入到arm-linux.cache echo \

执行configure文件

./configure --prefix=/opt/ts/ --host=arm-linux --cache-file=arm-linux.cache 执行make编译 make

执行make install 安装 make install

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

图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所示:

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

图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所示:

图 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

图 10-6 configure 成功

执行完configure命令之后,还需要修改三个文件: cd qt-embeded-opensource-src-4.6.3-arm

1. /src/3rdparty/freetype/include/freetype/config/ftconfig.h 330行

\ %0, %0, %2, lsl #16\\n\\t\ /* %0 |= %2 << 16 */ 2. /src/3rdparty/webkit/WebCore/Makefile 14行和15行

-D__ARM_ARCH_4T__

图 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所示:

图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 #include

int main(int argc, char *argv[]) {

QApplication app(argc, argv);

QLabel *label = new QLabel(\ label->show(); return app.exec(); }

然后qmake –project qmake make

ARM

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

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修改第二行,将#号和空格去掉,如图所示:

进入到/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: \2

本文来源:https://www.bwwdw.com/article/8za8.html

Top