交叉編譯qte4 4 3

2021-06-28 08:42:00 字數 2433 閱讀 4750

板子: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) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...