嵌入式Linux下移植QT

2021-06-18 13:26:29 字數 2891 閱讀 5027

2人收藏此文章,我要收藏

發表於1年前(2012-07-28 14:59) , 已有949次閱讀 ,共0

一 操作環境

ubuntu12.04

qt-everywhere-opensource-src-4.8.2.tar.gz

arm-2009q1-203-arm-none-linux-gnueabi.bin

seed_dec138

二 前期準備

1 使用者已經安裝好交叉編譯工具 ,

得到qt-everywhere-opensource-src-4.8.2.tar.gz

三 編譯安裝

總體來說,編譯過程分如下四個步驟

1 解壓qt-everywhere-opensource-src-4.8.2.tar.gz

2 ./configure配置選項,生成相應的makefile

3 make交叉編譯生成庫檔案

4 sudo make install 安裝生成的庫

詳細的配置編譯過程:

1 在使用者預定的位置解壓縮qt-everywhere-opensource-src-4.8.2.tar.gz

cd $ tar -zxvf qt-everywhere-opensource-src-4.8.2.tar.gz

生成目錄 qt-everywhere-opensource-src-4.8.2/

$ cd qt-everywhere-opensource-src-4.8.2/

2 ./configure配置選項

在編譯嵌入式linux平台的庫之前,通過執行./configure -embedded -help,可以列出所有的配置選項。

qt官方**有配置選項的幫助頁面

在執行配置之前,需要修改乙個檔案。在目錄qt-everywhere-opensource-src-4.8.2/mkspecs/qws/linux-arm-g++/下,

有乙個檔案qmake.conf ,指示了編譯使用的交叉編譯工具,需要對這個檔案作簡單的配置。

本文用的arm-2009q1-203-arm-none-linux-gnueabi.bin所提供的交叉編譯工具是arm-none-linux-       gnueabi-***形式的,所以qmake.conf修改如下:

$ cd /qt-everywhere-opensource-src-4.8.2/mkspecs/qws/linux-arm-g++/

$ gedit qmake.conf

# modifications to g++.conf

qmake_cc                = arm-none-linux-gnueabi-gcc -lts

qmake_cxx               = arm-none-linux-gnueabi-g++ -lts

qmake_link              = arm-none-linux-gnueabi-g++ -lts

qmake_link_shlib        = arm-none-linux-gnueabi-g++ -lts

# modifications to linux.conf

qmake_ar                = arm-none-linux-gnueabi-ar cqs

qmake_objcopy           = arm-none-linux-gnueabi-objcopy

qmake_strip             = arm-none-linux-gnueabi-strip

至於 -lts 那個選項,原來沒加,出現了 undefined reference to `ts_read_raw' 錯誤。所以建議加上。

配置選項很多,網上搜尋了乙個可以用的,這部分內容以後會單獨寫一篇文件討論。

./configure -embedded arm -release -opensource -fast -no-accessibility -no-scripttools -no-mmx -no-********** -no-svg -no-3dnow -no-sse -no-sse2 -silent -qt-libpng -qt-libjpeg 

-no-libmng -no-libtiff -no-********** -make libs -nomake tools -nomake examples -nomake docs -nomake demo -no-nis -no-cups -no-iconv -no-dbus -no-openssl -xplatform qws/linux-arm-g++ -little-endian -qt-freetype   -depths 16,18 -qt-gfx-linuxfb -no-gfx-transformed -no-gfx-multiscreen -no-gfx-vnc -no-gfx-qvfb -qt-kbd-linuxinput -no-glib -qt-mouse-tslib   -i   /opt/tslib/include -l /opt/tslib/lib -confirm-license "$@"

選項 -xplatform qws/linux-arm-g++ ,就是與我們修改的qmake.conf相關的。

配置完成後會生成乙個makefile檔案。

3 $ make 

進行交叉編譯,大概需要2-3個小時。

編譯的時候,出現了錯誤qt error: no such instruction: `swpb %cl,%al,[%esi]' ,我把壓縮包重新解壓並重複了上述過程,沒有出現上述錯誤。

網上也有另外的解決辦法,就是修改源**,可以參考一下

4 $ sudo make install

預設安裝在 /usr/local/trolltech/qtembedded-4.8.2-arm/目錄下。

四 總結

嵌入式移植

深度學習嵌入式移植 1 移植原因 演算法必須在優化後的硬體上執行,因為學習成千上萬的資料可能需要長達幾周的時間。移動端其實不需要做tranning,只需要進行propagating,所以問題集中在移動端能不能存放並執行更大的network。2 常見的移動端開發裝置 nvidiajetsontx1 t...

嵌入式linux移植總結

修改並編譯核心 增加或修改arch xx mach xx.c檔案,修改machine start第乙個引數為id,在static void init xx map io void 中修改時鐘s3c24xx init clocks 12000000 修改nand資訊在static struct mtd...

zedboard 嵌入式Linux系統移植

1.在構建好嵌入式開發環境的基礎上進行下一步開發移植工作。修改完成後,使用交叉編譯工具編譯u boot檔案,編譯完成後,在生成的u boot檔案後加.elf字尾以便xilinx sdk工具對其進行識別,該檔案和 bit檔案,fsbl.elf檔案被用來生成linux啟動檔案boot.bin。git c...