板子:helper2416 編譯器arm-linux-gcc
#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 否則也會編譯出錯的
qte原始碼的編譯
換了家公司,沒料到還是要做qt的工作。於時,不得已去重新編譯qte.這個編譯雖然已經做過,但是現在做起來,仍然花了很大力氣。其中的主要原因,編譯結果的不穩定,同樣的配置,有時候編譯能通過,有時候不能。現在主要說說其中的問題 1.編譯器 對於交叉編譯器以前認識不深刻,現在才知道編譯器是和特定的cpu型...
編譯 交叉編譯
交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...
交叉編譯(2) 交叉編譯鏈
什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...