1. 程式人生 > >圖解如何將Ubuntu上的Qt程式交叉編譯出可在ARM平臺執行的程式(五部曲)

圖解如何將Ubuntu上的Qt程式交叉編譯出可在ARM平臺執行的程式(五部曲)

圖解如何將Ubuntu上的Qt程式交叉編譯出可在ARM平臺執行的程式(五部曲)

(原創作品,轉載時請註明出處,商業用途前應徵得作者同意)

作者: devinoy(百度使用者)

日期:2012-10-16

版本:V1.00

Ubuntu(以ubuntu12.04為例,下同)下Qt Creator的安裝

1.1 點選Ubuntu桌面左邊的Ubuntu Software Center(烏邦圖軟體中心)圖示。

 

點選彈出介面上方的All Software

 

1.3 點選彈出介面左邊的Developer Tools

 

點選彈出介面中的Qt Creater,並螢幕指引安裝Qt Creator(以Qt Creator 2.4.1 Based on Qt 4.8.0(32 bit)

為例,下同)。

 

Qt Creator中新增ARM平臺編譯環境設定

啟動Qt Creator,點選在主介面選單欄中的Options

 

點選彈出介面中的Build&Run

 

點選彈出介面中先後點選Qt VersionsAdd

 

2.4 在彈出的Select a qmake executable介面進入Qt4.7(以qt-4.7.1為例,下同)bin目錄並選中其中的qmake,然後點選右下方的Open退出。

 

No qmlviewer installed問題的解決

新增ARM平臺編譯環境的設定後可能出現“No qmlviewer installed”告警資訊,如下圖:

 

    這是因為沒有安裝qmlviewerqmlviewer安裝後的可執行檔案沒有處於qt-4.7.1/bin目錄下,針對後一種情況只需從qmlviewer的安裝目錄(一般在/usr/bin目錄下)裡將qmlviewer, qmlpuppet, qmlprofiler, qmlplugindump複製到qt-4.7.1/bin目錄下。而針對未安裝qmlviewer的情況,安裝方法如下:在ubuntu12.04中開啟linux終端,輸入以下命令:

# apt-get install qt4-qmlviewer

     注意: qmlviewer的預設安裝目錄為/usr/bin

     安裝qmlviewer後重新新增

ARM平臺編譯環境的設定,“No qmlviewer installed”告警資訊消失。

構建所有專案(Build All)

點選Build & Run介面右下方的Details按鈕展開下一介面,在該介面中點選Build All構建所有專案,構建完後,先後點選下方的ApplyOK按鈕儲存設定。

 

新增編譯工具鏈

在上述的Build & Run介面中先後點選Qt VersionsAddGCC

 

   新增ARM交叉編譯器、偵錯程式路徑(注意:前提是現在相關路徑安裝了ARM交叉編譯器,下圖僅為舉例)

最後點選介面下方的ApplyOK按鈕儲存設定。

Qt Creator 中交叉編譯出在ARM平臺上的可執行程式

3.1 構建設定(Build Settings

Qt Creator中新建或開啟一個專案檔案,點選介面左邊的Project,在彈出的構建設定(Build Setting)介面中展開編輯構建配置(Edit build configuration),並選擇ARM交叉編譯器。

 

3.2 執行設定(Run Settings

Qt Creator中新建或開啟一個專案檔案,點選介面左邊的Project,在彈出的介面中點選執行設定(Run Settings)。

 

3.3 構建專案,即交叉編譯出在ARM平臺上的可執行程式

   點選選單欄Build à Clean All à Build All

 

   構建後在專案所在目錄生成一個相應的release資料夾(如:XXX-build-desktop-Qt_4_7_1_qt-4_7_1_Release資料夾),而構建生成的可執行檔案就在其中。 將該可執行檔案通過TelnetFtpLinux終端、SD卡、或U盤等方法傳到開發板的/usr/sbin目錄中,如果使用nfs系統,只需將該可執行檔案複製相關目錄即可。

在開發板上部署Qt4.7

所謂部署就是提取執行目標Qt4.7應用程式時必要Qt4.7庫檔案(如/opt/qt-4.7.1中的imports, lib, plugins, qtc-qmldbg, qtc-qmlobserver, translations5個檔案)存放在開發板的相關目錄下(如/opt/qt-4.7.1目錄)。

設定開發板中Qt4.7所需的環境變數

先編寫一個環境變數設定指令碼(該指令碼相關內容的編寫可參照開發板供應商提供的配套資料中的相關內容),再將該指令碼設定為可執行許可權,最後執行該指令碼。在開發板linux終端輸入執行該指令碼檔案的命令時,命令格式如下:

# . 指令碼檔名

注意:命令列中的.”和後面的檔名有一空格。

在開發板執行交叉編譯出來的可執行檔案

在開發板的linux終端輸入相關命令:

# 可執行檔名 –qws

----------------- THE END ----------------