1.移植环境
要求linux 内核,busybox ,qt库所用的交叉编译环境一样
这次使用的环境如下:
ubuntu12.04+arm-none-linux-gnueabi 4.3.3(取之天嵌出厂光碟。)
目标机是tq2440
移植qt版本4.7.2。
2.关于qmake.conf
qmake.conf与步骤3的configure选项-xplatform qws/linux-arm-gnueabi-g++ 对应,qmake.conf地址在4.7.2 src的目录:mkspecs/q
ws/linux-arm-gnueabi-g++中,修改qmake.conf如下:
#
# qmake configuration for building with arm-linux-g++
#
include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)
# modifications to g++.conf
QMAKE_CC = /home/csb/arm-linux/4.3.3/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX = /home/csb/arm-linux/4.3.3/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK = /home/csb/arm-linux/4.3.3/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /home/csb/arm-linux/4.3.3/bin/arm-none-linux-gnueabi-g++
#用绝对路径而不是使用PATH路径,避免系统多个交叉编译工具导致编译错误
# modifications to linux.conf
QMAKE_AR =/home/csb/arm-linux/4.3.3/bin/ arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /home/csb/arm-linux/4.3.3/bin/arm-none-linux-gnueabi-objcopy
QMAKE_STRIP = /home/csb/arm-linux/4.3.3/bin/arm-none-linux-gnueabi-strip
#QMAKE_CFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4 -mtune=arm920t
#QMAKE_CXXFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4 -mtune=arm920t
load(qt_config)
3.configure选项。
./configure -prefix ~/bin/qtembed4.7.2 -release -shared -fast -no-largefile -qt-sql-sqlite -no-qt3support -no-xmlpatterns -no-mmx -no-3dnow -no-sse -no-sse2 -no-svg -no-webkit -qt-zlib -qt-libtiff -qt-libpng -qt-libjpeg -make libs -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-gnueabi-g++ -embedded arm -little-endian -qt-freetype -depths 16 -qt-gfx-linuxfb -qt-gfx-transformed -qt-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -no-kbd-qvfb -no-glib -armfpa -no-mouse-qvfb -qt-mouse-linuxtp -qt-mouse-tslib -I/tslib-1.4/inclued -L/tslib-1.4/lib
具体各个选项参数意思可以参考
http://blog.youkuaiyun.com/synu_soft/article/details/7650884。
确认配置无错后:
make -jn (n取决于你cpu)
make install
4.移植到开发板
将安装目录下的lib plugins两个文件夹复制到开发板上,我使用的nfs文件系统,所以直接赋值到nfs文件夹目录下的/opt/qt-embed4.7.2中,然后修改/etc/profile文件添加如下变量如下
export set QTDIR=/opt/qt-4.7
export set QPEDIR=/opt/qt-4.7
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/plugins4/imageformats:$LD_LIBRARY_PATH
主要是将qt函数库添加到
LD_LIBRARY_PATH变量中