交叉编译qte4.4.3

来源:互联网 发布:斗地主软件下载 编辑:程序博客网 时间:2024/06/06 07:18
板子:helper2416  编译器arm-linux-gcc
下载qt-extended-opensource-src-4.4.3.tar.gz

#tar -zxvf qt-extended-opensource-src-4.4.3.tar.gz
#mkdir build
#cd build
设置环境变量:
修改源码包:
裁减Qtopia core的库
# vi qtopiacore/qconfig-qpe.h
首先注释掉关于鼠标光标的宏定义,让程序运行时,触摸屏中央有光标出现:
// Qtopia Core
/*
#ifndef QT_NO_QWS_CURSOR
# define QT_NO_QWS_CURSOR
#endif
*/

/*
#ifndef QT_NO_QWS_MOUSE
# define QT_NO_QWS_MOUSE
#endif
#ifndef QT_NO_QWS_MOUSE_AUTO
# define QT_NO_QWS_MOUSE_AUTO
#endif
*/

其它宏定义根据需要进行注释。
保存后将qconfig-qpe.h拷贝到global目录。
# cp qtopiacore/qconfig-qpe.h qtopiacore/qt/src/corelib/global/qconfig-qpe.h
注释掉其他文件里的QT_NO_QWS_CURSOR的定义
# vi qtopiacore/qt/src/corelib/global/qfeatures.h
注释掉如下内容:
/*
#if !defined(QT_NO_QWS_CURSOR) && (defined(QT_NO_CURSOR))
#define QT_NO_QWS_CURSOR
#endif
*/
保存退出。
# vi qtopiacore/qt/src/corelib/global/qglobal.h
注释掉以下内容:
//#    define QT_NO_QWS_CURSOR
保存退出。
可改时区信息,个人建议不修改
# vi src/libraries/qtopia/qtimezone.cpp
# vi src/settings/systemtime/settime.cpp
将其中的/usr/share/zoneinfo 改为/usr/local/qtopiq/zoneinfo,保存退出。
cp /usr/share/zoneinfo /usr/local/qtopia/ -r

cd build
../qt-extended-4.4.3/configure -release -image /opt/Qtopia  -prefix /opt/Qtopia \
-xplatform linux-arm-g++ -arch arm  -build-qt -no-dbus  -verbose  \
-ui-type home -launch-method quicklaunch \
-remove-module qvfb -remove-module modem -remove-module bluetooth \
-add-displaysize 480x272 -remove-module drm  -remove-module infrared -remove-module dbus \
-extra-qt-config "-qt-mouse-linuxtp -qt-libpng" \
-extra-qt-embedded-config "-xplatform qws/linux-arm-g++ -embedded arm \
-qconfig qpe -shared -little-endian -webkit -qt-kbd-usb -qt-libpng -qt-libjpeg -qt-gif \
-depths 4,8,16,32 -qt-mouse-tslib -I/usr/local/arm/tslib -L/usr/local/arm/tslib" 

编译
bin/qbuild
安装
bin/qbuild image
权限不够的话,相应的用sudo 
安装sdk
bin/qbuild sdk

ps: 如果pc上装了qt的头与库,那么交叉编译就会出问题,必须卸载掉

注意它不仅会编译出交叉编译版,还会先编译pc版,而如果你没有指定-extra-qt-configure -qt-libpng 的话,而你pc上的png版本是1.4 
那么编译时就会出错,这应该是png源上下不兼容的原因。
 error: ‘struct png_info_struct’ has no member named ‘trans_values’

把tslib头与lib都挎贝到/usr/local/arm/tslib 下,要保证这个目录下没有png1.4版本的头与lib 否则也会编译出错的
作者:帅得不敢出门 程序员群:31843264
0 0
原创粉丝点击