Raspberry Pi 4B編譯安裝Qt5.9.3

前言

目前大部分 Linux 系統都提供了 Qt 的安裝包,通常我們可以直接通過指令從軟件源下載。Qt 作爲常用的軟件,大部分操作系統亦會提供。但是,若我們想安裝指定的版本。通常是沒有的,這可咋辦?

自己動手豐衣足食

  • 安裝源指定的 Qtqtcreator,下載目標版本的 Qt 源碼,編譯安裝後在 Qtcreator 中構建目標版本的Kit套件即可。
  • 下載編譯 Qt 源碼,生成 qmake,下載 Qtcreator 源碼並使用 Qt 編譯。

本文選用的是 第一種

Raspberry Pi 安裝Qt

以下三步更新操作按需執行:

# 更新源列表
sudo apt-get update
# 更新軟件
sudo apt-get upgrade
# 更新內核和固件
sudo rpi-update

Qt及Qtcreator安裝

sudo apt-get install qt5-default
sudo apt-get install qtcreator

注意:Qtcreator是Qt編譯的QtIED,他們是獨立的。

編譯安裝指定Qt版本

下載源碼

清華鏡像-qt

我的下載路徑是:/qt/archive/qt/5.9/5.9.3/single/qt-everywhere-opensource-src-5.9.3.tar.xz

解壓

tar xvf qt-everywhere-src-5.9.3.tar.xz 

安裝依賴

sudo apt-get install libncurses5-dev libreadline-dev libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0 libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0 libxcb-render-util0-dev libxcb-glx0-dev

編譯設置

./configure -prefix /home/pi/SW/Qt5.9.3 -debug -skip qtdeclarative -opensource -confirm-license -no-openssl -no-opengl -nomake examples -nomake tests -qt-xcb -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -no-compile-examples

解釋一下:

  • - prefixmake install 的安裝路徑,如果不指定,就會安裝到默認的 /usr/local/
  • -debug 是編譯 debug版本的Qt
  • -opensource 是選定開源版本
  • -confirm-license 是確定下協議
  • -nomake examples -nomake tests 可以減少編譯,以加快編譯速度

make and install

由於編譯非常慢,這裏我們利用 CPU4核 編譯;儘管如此,也至少需要 4h

make -j4

編譯完成後,我們需要進行安裝

sudo make install

若我們設置時指定了 prefix ,則將安裝到 prefix目錄 ,否則安裝到默認路徑。

驗證

進入 bin 目錄,執行

./qmake -v

查看 Qt 版本是否與預期一致

新建 Kit套件 ,選擇我們編譯的 qmake

然後新建工程以驗證,驗證時出現了找不到 fonts 的問題。

字體無法顯示的問題

根據錯誤提示,cd 到相應路徑,創建文件夾 fonts

sudo mkdir fonts

在本機搜索字體文件

sudo find / -name "*.ttf"
#亦或 
sudo find / -name "fonts"

將字體文件複製到剛剛創建的 fonts 目錄下

cp /xx/xxx/xx.ttf xxx/xxx/lib/fonts

參考鳴謝

Linux搭建Qt5.14的開發環境-源碼編譯

Qt for Linux:樹莓派3配置Qt開發環境(Qt 5.9.1 和 OpenCV 2.4.13)

Important: Please read the Qt Code of Conduct

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章