Qt5.2.1移植海思
1.修改./qtbase/mkspecs下的 qmake.config
以一個linux-arm-test配置目錄為例,將mkspecs目錄下的linux-arm-gnueabi-g++複製為linux-arm-test
cp linux-arm-gnueabi-g++ linux-arm-test –r
修改linux-arm-test配置
cd linux-arm-test
檢視ls /opt/FriendlyARM/toolschain/4.4.3/bin檢視目錄下實際編譯工具鏈名
將linux-arm-test目錄下qmake.config中的arm-linux-gnueabi-開頭都更改為實際路徑加工具鏈名:PATH+arm-none-linux-gnueabi-
如QMAKE_CC = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-gcc
再加入三行:
QT_QPA_DEFAULT_PLATFORM = linuxfb #qpa圖形外掛,
QMAKE_CFLAGS_RELEASE += -O2 -march=armv5te
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv5te
說明1:QT_QPA_DEFAULT_PLATFORM選項是指定圖形外掛, Qt5將各平臺底層抽象為一個 qpa 外掛,通常在mac上是cocoa, 在window上是windows, 在linux X11下是xcb, 如果有OPENGL支援, 那麼選eglfs。而對於無硬體加速的裝置,則選擇linuxfb,。 minimal僅僅是讓程式跑通, 不起任何作用
說明2:目標板為新唐N32905U1DN,cpu為arm936ejs,執行arm-linux-gcc –target-help 檢視交叉編譯器所支援的架構,選擇了其中比較接近的一個為armv5te
修改qmake.conf檔案:
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv5te
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv5te
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-gcc
QMAKE_CXX = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-g++
# modifications to linux.conf
QMAKE_AR = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-objcopy
QMAKE_NM = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-nm -P
QMAKE_STRIP = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-none-linux-gnueabi-strip
load(qt_config)
2.configure配置
可以嘗試如下方法 ,但本人沒試過 :
編譯嵌入式QT5.7.0,配置完成後在make時遇到 ERROR: Unknown module(s) in QT: quick,後將配置檔案加入-skip qtdeclarative解決,完整配置選項如下:
./configure -opensource -shared -xplatform linux-arm-gnueabihf-g++ -qt-zlib -no-opengl -no-openssl -nomake examples -skip qtcanvas3d -skip qt3d -qreal float -skip qtdeclarative -prefix /xilinx/qt5/qt5instll/
3.執行make&&make install
期間會報錯 (大概三次),方法是直接改原始碼,註釋掉錯誤地方
4. 安裝後的問題
Qt5 背景透明顯示問題
qt4 可以通過 QWSServer::setBackground(QColor(0, 0, 0, 0)) 設定背景透明,
但是qt5裡面沒有這個了,現在程式執行到qt5去掉這段程式碼後,在arm 上面跑背景是為黑色的,
qt5 應該怎麼設定才能讓背景透明。
已經解決,在arm上跑用的是linuxfb平臺,需要更改兩個地方。
1. 在qtbase\src\platformsupport\fbconvenience\qfbscreen.cpp中將
mCompositePainter->fillRect(rect, Qt::black);
更改為
mCompositePainter->setCompositionMode(QPainter::CompositionMode_Source);
mCompositePainter->fillRect(rect, Qt::transparent);
mCompositePainter->setCompositionMode(QPainter::CompositionMode_SourceOver);
2. 在qtbase\src\plugins\platforms\linuxfb\qlinuxfbscreen.cpp中將
mBlitter->drawImage(rects, *mScreenImage, rects);
更改為
mBlitter->setCompositionMode(QPainter::CompositionMode_Source);
mBlitter->drawImage(rects[i], *mScreenImage, rects[i]);
mBlitter->setCompositionMode(QPainter::CompositionMode_SourceOver);
#配置qt外掛以及執行環境
將安裝軟體目錄下的plugins拷貝到目標板。
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins #qt外掛載入目錄
export QT_QPA_PLATFORM=linuxfb:tty=/dev/tty0 #qt圖形外掛平臺
export QT_QPA_FONTDIR=$QTDIR/lib/fonts #qt字型庫目錄
參考文章:點選開啟連結
相關文章
- 海思3515A移植記錄
- 海思hi3519dv500,hi3516dv500移植yolov8-模型處理YOLO模型
- libx264開發筆記(一):libx264介紹、海思平臺移植編譯筆記編譯
- 海思 uboot 編譯boot編譯
- ffmpeg在移植到海思HI35xx平臺之將ffmpeg庫引入到sample的demo中
- 2020年海思晶片合集晶片
- FFmpeg開發筆記(十):ffmpeg在ubuntu上的交叉編譯移植到海思HI35xx平臺筆記Ubuntu編譯
- OpenCV開發筆記(七十四):OpenCV+ffmpeg交叉編譯移植到海思平臺Hi35xx平臺OpenCV筆記編譯
- OpenCV開發筆記(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉編譯移植到海思平臺Hi35xx平臺OpenCV筆記編譯
- 海思Hi3521/Hi3520A/Hi3520D/Hi3515A/Hi3515C U-boot移植應用開發指南boot
- 海思Hi3559 datasheet資料介紹
- 海思HI3751V600使用者指南
- 海思HI3751 Android 待機開發指南Android
- 海思HI3751 Android升級開發指南Android
- 海思hi3536 PCIE級聯應用指南
- 在海思晶片上使用GDB遠端除錯晶片除錯
- 海思HI3519a晶片資料資料介紹晶片
- 海思Hi3716C多媒體晶片簡介晶片
- 海思hi3518ev300開發資料PDF
- 海思Hi3516CV500 LCD輸出說明
- 思必馳闖關IPO:老將求生AI紅海AI
- 海思Hi3719C V100晶片簡介晶片
- 海思hi3751 Android儲存開發指南手冊Android
- 【海思】Hi3531A SPI功能的詳細配置以及使用
- 《不可思議之夢蝶》專案從PC版移植到Nintendo Switch經驗分享
- 海思Hi3798mv300_DDR相容性測試指南
- 教機實相時正維海或天思體支CBZS
- 可移植性
- FreeRTOS移植EasyFlash
- 海思Hi3559A/CV100 DDR4引數配置方法
- 全球眾多巨頭原始碼線上洩漏,海思在列。原始碼
- 海思平臺機頂盒晶片處理器型號彙總晶片
- 14 海思Hi3518E用RTSP傳輸實時視訊
- Strategy Analytics:2021年Q1 海思出貨量同比暴跌 88%
- mp4v2開發筆記(一): mp4v2庫介紹,mp4v2在ubuntu上交叉編譯移植到海思Hi35xx平臺筆記Ubuntu編譯
- 海思hi3559AV100開發板引數規格介紹
- 海思Hi3516DV300軟硬體全套開發資料分享
- 海思Hi3798CV200處理器主要效能引數介紹