目錄
文章目錄
- 目錄
- 前言
- 環境
- 交叉編譯
- 總結
前言
因為想要通過QT在3519上實作跟蹤效果,是以在Hi3519上移植了QT4.8.6。雖然結果不理想,但是還是想把自己的移植過程記錄下來!或許是自己的功力還不夠的原因,今天莫名地感到心累!
本篇部落格參考易百納論壇,感謝大神們的無私奉獻!
環境
PC:Ubuntu16.04
交叉編譯工具鍊:arm-hisiv500-linux
QT版本:qt-everywhere-opensource-src-4.8.6.tar.gz
交叉編譯
- 解壓:
tar -xvf qt-everywhere-opensource-src-4.8.6.tar.gz
- 進入mkspecs/qws目錄:
cd /hisilicon/qt/qt-everywhere-opensource-src-4.8.6/mkspecs/qws
- 複制linux-arm-g++目錄到linux-hisiv500-g++目錄:
cp linux-arm-g++ linux-hisiv500-g++ -rf
- 進入linux-hisiv500-g++目錄
- 修改qmake.conf:
vi qmake.conf
# modifications to g++.conf
QMAKE_CC = arm-hisiv500-linux-gcc
QMAKE_CXX = arm-hisiv500-linux-g++
QMAKE_LINK = arm-hisiv500-linux-g++
QMAKE_LINK_SHLIB = arm-hisiv500-linux-g++
# modifications to linux.conf
QMAKE_AR = arm-hisiv500-linux-ar cqs
QMAKE_OBJCOPY = arm-hisiv500-linux-objcopy
QMAKE_STRIP = arm-hisiv500-linux-strip
- 增加qplatformdefs.h:
------->vi qplatformdefs.h
#undef O_CLOEXEC
- 安裝x11庫:
sudo apt-get install libx11-dev libxext-dev libxtst-dev
- 傳回源碼目錄qt-everywhere-opensource-src-4.8.6/mkspecs進行配置
./configure --prefix=/opt/qt4.8.6 -opensource -confirm-license -qt-sql-sqlite \
-qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit \
-no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug \
-qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch \
-no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -embedded arm \
-platform linux-g++ -xplatform qws/linux-hisiv500-g++ -little-endian -qt-freetype \
-no-opengl -no-glib -nomake demos -nomake examples -nomake docs -nomake tools
其中:–prefix=/opt/qt4.8.6是交叉編譯qt庫後的安裝目錄
-xplatform qws/linux-hisiv500-g++指定編譯器及平台配置資訊,就是步驟4修改的目錄
編譯成功後如下:
7.
make
8.
make install
在/opt目錄下生成qt4.8.6目錄:
cmd:tree qt4.8.6/ -L 1
.
├── bin
├── include
├── lib
├── mkspecs
├── plugins
└── translations
總結
編譯qt4.8.6的過程還是很簡單的,難點在于通過Hi3519顯示Qt界面,後續會繼續補充。而且感覺Qt版本有點老,以後還是編譯Qt5的庫試試,畢竟要緊跟潮流嘛!
條條大路通羅馬,可在你選擇路,拼命奮鬥的時候,人家已經在羅馬了!可起碼你在路上,雖然終歸是條錯誤的路!