導航:首頁 > 源碼編譯 > 嵌入式qt514編譯

嵌入式qt514編譯

發布時間:2025-04-04 20:07:08

1. QT Creator配置嵌入式linux交叉編譯環境

大四那年,我曾研究過如何在PC機上交叉編譯出能在樹莓派運行的ARM匯編程序。現在,我突發奇想,是否也能在QT Creator上配置交叉編譯環境,以在嵌入式Linux上運行QT程序呢?本文將以全志V853晶元作為目標平台為例,詳細介紹如何在QT Creator上配置交叉編譯環境。對於其他目標平台,參數稍作修改即可。

**准備交叉編譯器環境**

首先,利用全志V853開發板提供的Tina SDK包中的交叉編譯器。假設Tina SDK包放置在當前用戶目錄下,目錄名為tina-v853-open,則交叉編譯器所在路徑為~/.tina-v853-open/bin。接下來,將交叉編譯器路徑、編譯器引用的庫文件路徑添加至環境變數。在~/.bashrc文件末尾,使用管理員許可權編輯,加入以下兩行代碼。然後執行命令刷新環境變數。

驗證交叉編譯器環境是否配置好,輸入特定命令,查看gcc版本,確保版本為8.3.0。

**編譯QT源碼**

編譯目標是生成在目標平台可用的QT庫以及相應的qmake。首先下載QT源碼,解壓至當前用戶目錄。接下來,修改qmake.conf文件,調整配置以適應目標平台。隨後,新建目錄存放編譯後的QT庫,配置編譯選項,指定編譯線程數,加快編譯速度。最後,開始編譯QT源碼,並驗證編譯結果。

**配置QT Creator**

QT Creator是用於QT程序開發的IDE。若未安裝,可通過相應途徑獲取。配置編譯器時,打開QT Creator,選擇「工具」->「選項」,在「編譯器」一欄中添加GCC和G++編譯器路徑,指定名稱。接著,配置交叉編譯用的QT版本,通過添加qmake路徑到「QT Versions」中。最後,配置Kits,設置編譯器和QT版本,驗證配置是否有效。

**驗證測試**

新建C語言工程測試配置的交叉編譯環境。在「項目」中設置環境變數,確保編譯成功。通過編譯後的文件指令集檢查,確認程序的指令集與目標平台兼容,完成對交叉編譯環境的驗證。

2. 關於QT開發平台和arm嵌入式的關系。

QT與ARM沒有直接的關系,QT說自己能跨平台。注意,這個平台說的不是CPU平台而是操作系統。
只要你的嵌入式設備上裝有操作系統,QT程序就能在上面運行。例如:QT中有網路的概念,但是完全不同於C51的網路編程,C51里你需要知道網路晶元在匯流排上的地址,怎麼造作網路晶元的寄存器,怎麼去ENABLE它,然而QT中的網路只是著重於協議、線程等東西和硬體完全無關。
因此,學習嵌入式QT你首先要對你的ARM開發板安裝操作系統,編譯環境,之後,學習QT的方法和學習MFC基本上沒啥區別。
最後,QT是跨平台硬體無關的,也就是說你在windows、台式機上用QT的方法與在手機、塞班系統上用QT的方法差別不大,因此你會在windows上用qt就OK了,其他的系統上不同的無非是編譯與配置方法,對於這些較為死板的東西,都是要用的時候再到網上去查查的。

3. Linux嵌入式交叉編譯工具鏈問題 淺談

簡介

交叉編譯工具鏈是一個由編譯器、連接器和解釋器組成的綜合開發環境,交叉編譯工具鏈主要由binutils、gcc和glibc 3個部分組成。有時出於減小libc庫大小的考慮,也可以用別的c庫來代替glibc,例如uClibc、dietlibc和newlib。交叉編譯工具鏈主要包括針對目標系統的編譯器gcc、目標系統的二進制工具binutils、目標系統的標准c庫glibc和目標系統的Linux內核頭文件。第一個步驟就是確定目標平台。每個目標平台都有一個明確的格式,這些信息用於在構建過程中識別要使用的不同工具的正確版本。因此,當在一個特定目標機下運行GCC時,GCC便在目錄路徑中查找包含該目標規范的應用程序路徑。GNU的目標規范格式為CPU-PLATFORM-OS。例如,建立基於ARM平台的交叉工具鏈,目標平台名為arm-linux-gnu。

交叉編譯工具鏈的製作方法

  1. 分步編譯和安裝交叉編譯工具鏈所需要的庫和源代碼,最終生成交叉編譯工具鏈。

  2. 通過Crosstool腳本工具來實現一次編譯生成交叉編譯工具鏈。

  3. 直接通過網上(ftp.arm.kernel.org.uk)下載已經製作好的交叉編譯工具鏈。

方法1相對比較困難,適合想深入學習構建交叉工具鏈的讀者。如果只是想使用交叉工具鏈,建議使用方法2或方法3構建交叉工具鏈。方法3的優點不用多說,當然是簡單省事,但與此同時該方法有一定的弊端就是局限性太大,因為畢竟是別人構建好的,也就是固定的沒有靈活性,所以構建所用的庫以及編譯器的版本也許並不適合你要編譯的程序,同時也許會在使用時出現許多莫名的錯誤,建議你慎用此方法。


方法1:分步構建交叉編譯工具鏈


  1. 下載所需的源代碼包

  2. 建立工作目錄

  3. 建立環境變數

  4. 編譯、安裝Binutils

  5. 獲取內核頭文件

  6. 編譯gcc的輔助編譯器

  7. 編譯生成glibc庫

  8. 編譯生成完整的gcc

由於在問答中的篇幅,我不能細述具體的步驟,興趣的同學請自行閱讀開源共創協議的《Linux from scratch》,網址是:linuxfromscratch dot org


方法2:用Crosstool工具構建交叉工具鏈(推薦)

Crosstool是一組腳本工具集,可構建和測試不同版本的gcc和glibc,用於那些支持glibc的體系結構。它也是一個開源項目,下載地址是kegel dot com/crosstool。用Crosstool構建交叉工具鏈要比上述的分步編譯容易得多,並且也方便許多,對於僅僅為了工作需要構建交叉編譯工具鏈的你,建議使用此方法。

運行which makeinfo,如果不能找見該命令,在解壓texinfo-4.11.tar.bz2,進入texinfo-4.11目錄,執行./configure&&make&&make install完成makeinfo工具的安裝

下載所需資源文件linux-2.4.20.tar.gz、binutils-2.19.tar.bz2、gcc-3.3.6.tar.gz、glibc- 2.3.2.tar.gz、glibc-linuxthreads-2.3.2.tar.gz和gdb-6.5.tar.bz2。然後將這些工具包文件放在新建的$HOME/downloads目錄下,最後在$HOME/目錄下解壓crosstool-0.43.tar.gz,命

令如下:
#cd$HOME/
#tar–xvzfcrosstool-0.43.tar.gz

接著需要建立自己的編譯腳本,起名為arm.sh,為了簡化編寫arm.sh,尋找一個最接近的腳本文件demo-arm.sh作為模板,然後將該腳本的內容復制到arm.sh,修改arm.sh腳本,具體操作如下:

# cd crosstool-0.43

# cp demo-arm.sh arm.sh

# vi arm.sh

修改後的arm.sh腳本內容如下:

#!/bin/sh
set-ex
TARBALLS_DIR=$HOME/downloads#定義工具鏈源碼所存放位置。
RESULT_TOP=$HOME/arm-bin#定義工具鏈的安裝目錄
exportTARBALLS_DIRRESULT_TOP
GCC_LANGUAGES="c,c++"#定義支持C,C++語言
exportGCC_LANGUAGES
#創建/opt/crosstool目錄
mkdir-p$RESULT_TOP
#編譯工具鏈,該過程需要數小時完成。
eval'catarm.datgcc-3.3.6-glibc-2.3.2.dat'shall.sh--notest
echoDone.

在arm.sh腳本文件中需要注意arm-xscale.dat和gcc-3.3.6-glibc-2.3.2.dat兩個文件,這兩個文件是作為Crosstool的編譯的配置文件。其中arm.dat文件內容如下,主要用於定義配置文件、定義生成編譯工具鏈的名稱以及定義編譯選項等。

KERNELCONFIG='pwd'/arm.config#內核的配置
TARGET=arm-linux#編譯生成的工具鏈名稱
TARGET_CFLAGS="-O"#編譯選項


gcc-3.3.6-glibc-2.3.2.dat文件內容如下,該文件主要定義編譯過程中所需要的庫以及它定義的版本,如果在編譯過程中發現有些庫不存在時,Crosstool會自動在相關網站上下載,該工具在這點上相對比較智能,也非常有用。

BINUTILS_DIR=binutils-2.19
GCC_DIR=gcc-3.3.6
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.10-8(根據實際情況填寫)
GDB_DIR=gdb-6.5

將Crosstool的腳本文件和配置文件准備好之後,開始執行arm.sh腳本來編譯交叉編譯工具。具體執行命令如下:

#cdcrosstool-0.43
#./arm.sh

經過數小時的漫長編譯之後,會在/opt/crosstool目錄下生成新的交叉編譯工具,其中包括以下內容:

arm-linux-addr2linearm-linux-g++arm-linux-ldarm-linux-size
arm-linux-ararm-linux-gccarm-linux-nmarm-linux-strings
arm-linux-asarm-linux-gcc-3.3.6arm-linux-objarm-linux-strip
arm-linux-c++arm-linux-gccbugarm-linux-objmpfix-embedded-paths
arm-linux-c++filtarm-linux-gcovarm-linux-ranlib
arm-linux-cpparm-linux-gprofarm-linux-readelf

然後將生成的編譯工具鏈路徑添加到環境變數PATH上去,添加的方法是在系統/etc/ bashrc文件的最後添加下面一行,在bashrc文件中添加環境變數

export PATH=/home/jiabing/gcc-3.3.6-glibc-2.3.2/arm-linux-bin/bin:$PATH

至此,arm-linux下的交叉編譯工具鏈已經完成,現在就可以使用arm-linux-gcc來生成試驗箱上的程序了!












4. 什麼是嵌入式 Qt

Qt是一個跨平台應用程序和UI開發框架。使用Qt只需一次性開發應用程序,無須重新編寫源代碼,便可跨不同桌面和嵌入式操作系統部署這些應用程序。Qt原為奇趣科技公司(Trolltech,www.trolltech.com)開發維護,已被nokia公司收購,在nokia的推動下,Qt的發展非常快速,版本不斷更新。目前最新的Qt主版本為4.8.1,所支持的平台如下圖所示:

EasyARM-iMX283提供已交叉編譯好的Qt庫(Qt-4.8.0),用戶無需編譯,系統已經將Qt庫文件集成到了交叉編譯器中。用戶將得到此庫的兩份拷貝,一份內嵌在交叉編譯工具鏈中,供編譯時鏈接使用。一份內嵌在目標板文件系統中,放置在系統庫目錄下,供Qt程序運行時動態載入使用

閱讀全文

與嵌入式qt514編譯相關的資料

熱點內容
javacms開源系統源碼下載 瀏覽:609
軟體個人版和伺服器版有什麼區別 瀏覽:668
lol有什麼伺服器在山東 瀏覽:844
命令行關閉窗口 瀏覽:972
手模編程 瀏覽:264
引入賬套顯示需要解壓縮 瀏覽:425
本地電腦連接阿里雲伺服器SQL 瀏覽:48
小米什麼時候推送安卓12 瀏覽:486
如何確保伺服器不斷電不斷網 瀏覽:19
怎麼增加密碼的安全性 瀏覽:212
安卓模擬器如何重啟 瀏覽:902
程序員那麼可愛懷孕第幾集結婚 瀏覽:744
markdownlinux命令 瀏覽:490
低配伺服器什麼價 瀏覽:631
kms伺服器指向錯誤怎麼修改 瀏覽:733
arch編譯qtcreator 瀏覽:375
速龍單片機 瀏覽:649
晶元編譯環境 瀏覽:408
java讀取linux文件路徑 瀏覽:158
ug編程測量刀路距離 瀏覽:252