QT 源码下载
这是官方下载地址:http://qt.nokia.com/downloads
点击右下角的 ftp.qt.nokia.com
ftp的归档下载地址,这里有各种版本的源码下载:
ftp://ftp.qt.nokia.com/qt/source/
QT版本:qt-everywhere-opensource-src-4.6.3.tar.gz
开发板:s3c2416
主机系统:ubuntu 12.04
交叉编译器:4.1.2
安装4.1.2交叉编译器:
进入压缩文件目录
tar zxvf arm920t-eabi.tgz -C /
设置环境变量PATH
打开文件 #vim /etc/bash.bashrc
在最后加一句 PATH=/opt/toolchains/arm920t-eabi/bin:$PATH
使变量生效 #source /etc/profile
安装触摸屏校验工具:
把tslib-1.4.tar.gz放到/opt目录下
tar zxvf tslib-1.4.tar.gz -C /opt/
安装库 apt-get install libtool autoconf automake
进入tslib文件夹执行
#./autogen.sh
#./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
#make
#make install
编译Qt-4.6.3库(arm版本):
tar zxvf qt-everywhere-opensource-src-4.6.3.tar.gz -C /opt/
拷贝一个复本命名为qt-everywhere-arm
cp -a qt-everywhere-opensource-src-4.6.3/ qt-4.6.3-arm
修改文件夹下src/3rdparty/freetype/include/freetype/config/ftconfig.h,将第330行修改为:"orr %0, %0,%2, lsl #16\n\t" /* %0 |= %2 << 16 */
设置环境变量:#export CPLUS_INCLUDE_PATH=/opt/arm920t-eabi/arm-angstrom-linux-gnueabi/include/c++:/opt/arm920t-eabi/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi
可以在/root/./bashrc里面把这句添加进去
将/opt/qt-4.6.3-arm/mkspecs/qws/linux-arm-g++/qmake.conf文件修改为下面的内容
# modifications to g++.conf
QMAKE_CC = arm-linux-gcc -lts//ubuntu下改成”-lts”
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lts
缺少了链接选项
#./configure -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -depths 16,18,24 -fast -optimized-qmake -pch -qt-sql-sqlite -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-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -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
需指定tslib编译文件,不然的话可能会找不到,导致tslib的功能无法实现而使编译无法正常进行
然后复制“/usr/local/Trolltech/QtEmbedded-4.6.3-arm”目录下的“lib/”目录到前面建立的“qt-4.6.3/”目录下,
然后进到刚刚复制过来的“lib/”目录下,删掉除去“fonts/”目录和“*.so*”文件外的其他文件,然后在“fonts/”目录下删掉用不到的字库文件,具体删掉哪些字库请根据实际情况决定。
然后复制“/usr/local/Trolltech/QtEmbedded-4.6.3-arm”目录下的“plugins/imageformats/”目录到前面建立的“qt-4.6.3/”目录下。
然后在前面建立的“qt-4.6.3/”目录下建立一个名为“bin/”的目录,然后复制刚刚编译好的那些 Qt4 的
测试程序,比如“mainwindow”程序和“hello_cn”等。
将/usr/local/tslib/lib下的libts-0.0.so.0.1.1文件改名为libts-0.0.so.0放到文件系统/qt-4.6.3/lib目录下
由于libstdc++.so.6版本过低,运行应用程序时会出错,下载一个libstdc++.so.6.0.8,建立链接文件libstdc++.so.6指向libstdc++.so.6.8,两个文件放入文件系统/qt-4.6.3/lib目录下。
修改文件系统的“etc/profile”文件(为了单独运行 Qt 程序而设置该文件)
,改为:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Ash profile
# vim: syntax=sh
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
export set HOME=/root
export set QTDIR=/opt/qt-4.6.3
export set QPEDIR=/opt/qt-4.6.3
export set QWS_DISPLAY="LinuxFB:/dev/fb0"
export set QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
export set QWS_KEYBOARD="TTY:/dev/tty1"
if [ -f /sys/devices/virtual/input/input0/uevent ] ; then
export set TSLIB_TSDEVICE=/dev/event0
export set TSLIB_CALIBFILE=/etc/pointercal
export set TSLIB_CONFFILE=/etc/ts.conf
export set TSLIB_PLUGINDIR=/lib/ts
export set QWS_MOUSE_PROTO="TSLIB:/dev/event0 Intellimouse:/dev/mouse0"
else
export set QWS_MOUSE_PROTO="Intellimouse:/dev/mouse0"
fi
export set QT_PLUGIN_PATH=$QTDIR/plugins/
export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/
export set PATH=$QPEDIR/bin:$PATH
export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$LD_LIBRARY_PATH
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]\# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
________________________________________________________________________
这是官方下载地址:http://qt.nokia.com/downloads
点击右下角的 ftp.qt.nokia.com
ftp的归档下载地址,这里有各种版本的源码下载:
ftp://ftp.qt.nokia.com/qt/source/
QT版本:qt-everywhere-opensource-src-4.6.3.tar.gz
开发板:s3c2416
主机系统:ubuntu 12.04
交叉编译器:4.1.2
安装4.1.2交叉编译器:
进入压缩文件目录
tar zxvf arm920t-eabi.tgz -C /
设置环境变量PATH
打开文件 #vim /etc/bash.bashrc
在最后加一句 PATH=/opt/toolchains/arm920t-eabi/bin:$PATH
使变量生效 #source /etc/profile
安装触摸屏校验工具:
把tslib-1.4.tar.gz放到/opt目录下
tar zxvf tslib-1.4.tar.gz -C /opt/
安装库 apt-get install libtool autoconf automake
进入tslib文件夹执行
#./autogen.sh
#./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes
#make
#make install
编译Qt-4.6.3库(arm版本):
tar zxvf qt-everywhere-opensource-src-4.6.3.tar.gz -C /opt/
拷贝一个复本命名为qt-everywhere-arm
cp -a qt-everywhere-opensource-src-4.6.3/ qt-4.6.3-arm
修改文件夹下src/3rdparty/freetype/include/freetype/config/ftconfig.h,将第330行修改为:"orr %0, %0,%2, lsl #16\n\t" /* %0 |= %2 << 16 */
设置环境变量:#export CPLUS_INCLUDE_PATH=/opt/arm920t-eabi/arm-angstrom-linux-gnueabi/include/c++:/opt/arm920t-eabi/arm-angstrom-linux-gnueabi/include/c++/arm-angstrom-linux-gnueabi
可以在/root/./bashrc里面把这句添加进去
将/opt/qt-4.6.3-arm/mkspecs/qws/linux-arm-g++/qmake.conf文件修改为下面的内容
# modifications to g++.conf
QMAKE_CC = arm-linux-gcc -lts//ubuntu下改成”-lts”
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lts
缺少了链接选项
#./configure -prefix /usr/local/Trolltech/QtEmbedded-4.6.3-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-g++ -depths 16,18,24 -fast -optimized-qmake -pch -qt-sql-sqlite -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-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -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
需指定tslib编译文件,不然的话可能会找不到,导致tslib的功能无法实现而使编译无法正常进行
#make
#make install
然后复制“/usr/local/Trolltech/QtEmbedded-4.6.3-arm”目录下的“lib/”目录到前面建立的“qt-4.6.3/”目录下,
然后进到刚刚复制过来的“lib/”目录下,删掉除去“fonts/”目录和“*.so*”文件外的其他文件,然后在“fonts/”目录下删掉用不到的字库文件,具体删掉哪些字库请根据实际情况决定。
然后复制“/usr/local/Trolltech/QtEmbedded-4.6.3-arm”目录下的“plugins/imageformats/”目录到前面建立的“qt-4.6.3/”目录下。
然后在前面建立的“qt-4.6.3/”目录下建立一个名为“bin/”的目录,然后复制刚刚编译好的那些 Qt4 的
测试程序,比如“mainwindow”程序和“hello_cn”等。
将/usr/local/tslib/lib下的libts-0.0.so.0.1.1文件改名为libts-0.0.so.0放到文件系统/qt-4.6.3/lib目录下
由于libstdc++.so.6版本过低,运行应用程序时会出错,下载一个libstdc++.so.6.0.8,建立链接文件libstdc++.so.6指向libstdc++.so.6.8,两个文件放入文件系统/qt-4.6.3/lib目录下。
修改文件系统的“etc/profile”文件(为了单独运行 Qt 程序而设置该文件)
,改为:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Ash profile
# vim: syntax=sh
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
export set HOME=/root
export set QTDIR=/opt/qt-4.6.3
export set QPEDIR=/opt/qt-4.6.3
export set QWS_DISPLAY="LinuxFB:/dev/fb0"
export set QWS_DISPLAY="LinuxFB:mmWidth130:mmHeight100:0"
export set QWS_KEYBOARD="TTY:/dev/tty1"
if [ -f /sys/devices/virtual/input/input0/uevent ] ; then
export set TSLIB_TSDEVICE=/dev/event0
export set TSLIB_CALIBFILE=/etc/pointercal
export set TSLIB_CONFFILE=/etc/ts.conf
export set TSLIB_PLUGINDIR=/lib/ts
export set QWS_MOUSE_PROTO="TSLIB:/dev/event0 Intellimouse:/dev/mouse0"
else
export set QWS_MOUSE_PROTO="Intellimouse:/dev/mouse0"
fi
export set QT_PLUGIN_PATH=$QTDIR/plugins/
export set QT_QWS_FONTDIR=$QTDIR/lib/fonts/
export set PATH=$QPEDIR/bin:$PATH
export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/plugins/imageformats:$LD_LIBRARY_PATH
USER="`id -un`"
LOGNAME=$USER
PS1='[\u@\h \W]\# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH
________________________________________________________________________