基于S3C2440的Linux-3.6.6移植——QT的编译与安装



PC上的系统是Fedora 1732位的。它自带了Qt,版本是4.8.4,因此嵌入式Qt我也选择相同的版本。

 

从官网下载qt-everywhere-opensource-src-4.8.4.tar.gz。解压该文件:

tar zxvf  qt-everywhere-opensource-src-4.8.4.tar.gz

进入该解压后的目录:

cd  qt-everywhere-opensource-src-4.8.4

为了方便更改配置,可以编写一个名为autoconfig.sh的自动配置文件,内容为:

#!/bin/sh

./configure \

-v \

-opensource \

-confirm-license \

-release -shared \

-embedded arm \

-xplatform qws/linux-arm-g++ \

-depths 16,18,24,32 \

-fast \

-optimized-qmake \

-pch \

-qt-sql-sqlite \

-no-sql-db2 -no-sql-ibase -no-sql-mysql-no-sql-psql -no-sql-odbc -no-sql-oci \

-no-sql-tds -no-sql-sqlite2 \

-qt-libjpeg \

-qt-zlib \

-qt-libpng \

-qt-freetype \

-little-endian -host-little-endian \

-no-qt3support \

-no-libtiff -no-libmng \

-no-opengl \

-no-mmx -no-sse -no-sse2 \

-no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2-no-avx -no-neon \

-no-dbus -no-icu -no-multimedia \

-no-3dnow \

-no-openssl \

-no-webkit \

-no-qvfb \

-no-phonon \

-no-nis \

-no-cups \

-no-glib \

-no-xcursor -no-xfixes -no-xrandr-no-xrender \

-no-separate-debug-info \

-nomake examples -nomake tools -nomake docs\

-qt-mouse-tslib \

-I/usr/local/tslib/include \

-L/usr/local/tslib/lib

 

exit

 

其中的-I-L分别是tslib在根文件系统中includelib的路径。运行该文件:

./autoconfig.sh

然后编译:

gmake

最后以root身份安装:

gmake install

由于我没有定义安装目录,因此系统自动把文件安装到了默认目录/usr/local/Trolltech/QtEmbedded-4.8.4-arm/下。

 

下面就是开发板的配置,把/usr/local/Trolltech/QtEmbedded-4.8.4-arm/lib目录下的所有文件复制到根文件系统的lib下。再设置开发板的环境变量,在根文件系统的profile文件中添加下列语句:

export QWS_MOUSE_PROTO=Tslib:/dev/event0

export QT_QWS_FONTDIR=/lib/fonts

export POINTERCAL_FILE=/temp/pointercal

export QWS_SIZE=320x240

第一行表示触摸屏的设备节点,第二行表示QT的字库目录,第三行表示的是Tslib的触摸屏校正文件的目录,第四行表示LCD屏的尺寸。

 

通过以上步骤,开发板就可以运行Qt文件了。我们测试一下,可以用gedit编写一段Qt程序:

#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();

}

 

把它保存为hello.cpp文件,这里要保证该文件所在的目录内只有一个cpp文件(以后复杂的程序可以用Qt Creator来编写编译)。进入该目录,运行下列语句:

/usr/local/Trolltech/QtEmbedded-4.8.4-arm/bin/qmake–project

/usr/local/Trolltech/QtEmbedded-4.8.4-arm/bin/qmake

make

将生成的可执行文件复制到开发板上运行,记得要用-qws参数,另外一定要保证tmp目录是可写的。

 

Qt的编译说起来是很简单的,如果不出现问题,一切都很顺利。但我在编译Qt的时候就出现了不少问题。首先我的arm-linux-gcc的版本是4.2.2,在configure配置Qt的时候,无法配置成功,这样我就把arm-linux-gcc的版本换成了4.4.3,但在configure配置Qt的时候,会提示qmake是无法执行的二进制文件。这个问题困惑了我好长时间,我通过下面办法得到了解决,由于我的PC系统已默认安装了基于PCQT,它是在/usr/bin目录下名称为qmake-qt4,我把该文件软连接为qmake文件:

ln  –s  qmake-qt4 qmake

然后在用户目录下,在.bashrc文件内添加下列内容:

export  QTDIR=/usr

export  PATH=$PATH:$QTDIR/bin

export  MANPATH=$QTDIR/man:$MANPATH

export  LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

通过上面的步骤最终Qt配置、编译、安装成功了。因为Qt用的是gcc版本更换了,那么根文件系统也要用该版本进行编译,否则应用程序因为库文件不匹配而无法运行。

 

你可能感兴趣的:(基于S3C2440的Linux-3.6.6移植——QT的编译与安装)