QT4.8.7移植
以下是在S3C2416嵌入式开发板上(Linux3.6.6内核)移植QT4的最后一个版本4.8.7的具体步骤:
1、Qt需要依赖于tslib,本例中的tslib安装好,目录为/usr/local/tslib,并在/etc/profile文件中导出了相关路径,确保tslib可以正常使用。
2、从官方网站(http://download.qt.io/archive/qt/)上下载qt-everywhere-opensource-src-4.8.7.tar.gz文件。
3、执行“tar –zxvf qt-everywhere-opensource-src-4.8.7.tar.gz –C /”解压到根目录下。
4、执行“cd /qt-everywhere-opensource-src-4.8.7/mkspecs/qws/linux-arm-g++”进入目录,找到qmake.conf文件。
5、执行“vim qmake.conf”打开该文件,把其中的内容改成如下形式(完整):
#
# qmake configuration for building with arm-linux-g++
#
QMAKE_CFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv5t
QMAKE_CXXFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv5t
include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)
include(../../common/qws.conf)
#modifications to g++.conf
QMAKE_CC = /usr/local/arm/4.4.3/bin/arm-linux-gcc -lts
QMAKE_CXX = /usr/local/arm/4.4.3/bin/arm-linux-g++ -lts
QMAKE_LINK = /usr/local/arm/4.4.3/bin/arm-linux-g++ -lts
QMAKE_LINK_SHLIB = /usr/local/arm/4.4.3/bin/arm-linux-g++ -lts
# modifications to linux.conf
QMAKE_AR = /usr/local/arm/4.4.3/bin/arm-linux-ar cqs
QMAKE_OBJCOPY = /usr/local/arm/4.4.3/bin/arm-linux-objcopy
QMAKE_NM = /usr/local/arm/4.4.3/bin/arm-linux-nm -P
QMAKE_STRIP = /usr/local/arm/4.4.3/bin/arm-linux-strip
load(qt_config)
6、在上述内容中,使用的是4.4.3版本的交叉编译工具,并引用了其绝对路径,此处不建议使用PATH中提供的搜索路径,有可能出问题。
7、执行“cd /qt-everywhere-opensource-src-4.8.7”返回到QT根目录。
8、在提示符下输入以下配置内容并回车:
./configure -prefix /usr/local/qt4.8.7 -opensource -release -shared -fast -embedded arm -xplatform qws/linux-arm-g++ -no-largefile -qt-sql-sqlite -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -no-gif -qt-libtiff -qt-libpng -qt-libmng -qt-libjpeg -make libs -nomake tools -nomake examples -nomake docs -nomake demos -no-nis -no-cups -no-iconv -no-dbus -no-openssl -no-glib -qt-mouse-tslib -little-endian -qt-freetype -qt-mouse-qvfb -depths 16,18 -qt-gfx-linuxfb -no-gfx-multiscreen -no-gfx-transformed -no-gfx-vnc -no-gfx-qvfb -qt-gfx-qvfb -qt-kbd-qvfb -I/usr/local/tslib/include -L/usr/local/tslib/lib
9、执行上述配置后,会询问是否同意GPL许可协议,输入yes并回车进入配置,配置过程需要一些时间,要耐心等待。
10、配置完成后,执行“make –j4”进行交叉编译,其中的参数j后面是电脑CPU的内核数量,本例以4核进行编译,因编译时间较长,尽量用多核进行编译。
11、编译完成后,执行“make install”命令进行安装,安装以上面配置中的路径(/usr/local/qt4.8.7)进行。
12、安装结束后,进入到安装目录/usr/local/qt4.8.7,可看到生成的QT目录,其中的lib目录是需要移植到S3C2416开发板上的。
13、执行“tar –cjvf qt4.8.7.tar.bz2 lib/”命令对lib目录进行打包压缩,完成后会生成文件qt4.8.7.tar.bz2文件。
14、把文件qt4.8.7.tar.bz2拷贝到S3C2416开发板中,先执行“mkdir –p /usr/local/qt4.8.7”建立目录,然后执行“tar –jxvf qt4.8.7.tar.bz2 –C /usr/local/qt4.8.7/”把QT的库解压到该目录下。
15、执行“vi /etc/profile”打开该文件,添加以下内容,以导出QT所在的路径。
#qt-embedded------------------------------------------------------------
export QTDIR=/usr/local/qt4.8.7
export QPEDIR=/usr/local/qt4.8.7
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export QWS_DISPLAY=LinuxFb:/dev/fb0
export QWS_SIZE=800x480
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
16、重新启动一下开发板,然后执行QT程序了,接下来创建一个QT测试程序。
17、可使用qt4.8.7源码中提供的例子,在虚拟机上执行“cd /qt-everywhere-opensource-src-4.8.7/examples/widgets”进入该目录,可看到有许多的例子程序,这里选取计算器例子,执行“cd calculator”进入该目录。
18、在计算器目录下,先执行“/usr/local/qt4.8.7/bin/qmake -project”生成工程项目文件calculator.pro,然后执行“/usr/local/qt4.8.7/bin/qmake”生成Makefile文件,最后执行make命令进行交叉编译,编译完成后会生成可执行文件calculator。
19、把可执行文件calculator拷贝到开发板上并放到/home目录下,然后执行“chmod 755 calculator”以让其具备可执行属性。
20、执行“./calculator -qws”就可在开发板的液晶屏上看到计算器的窗体了,如果触摸屏正常,则可用手点击进行输入计算了。