統信UOS系統開發筆記(三):從Qt源碼編譯安裝之編譯安裝Qt5.12.8

前言

  上一篇,是使用Qt提供的安裝包安裝的,有些場景需要使用到自己編譯的Qt,所以本篇如何在統信UOS系統上編譯Qt5.12.8源碼。

 

統信UOS系統版本

  系統版本:
  在這裏插入圖片描述

Qt源碼下載

  參考博文《獲取下載Qt安裝包,Qt源碼全國網址備忘錄(不用註冊Qt賬戶,即可下載各版本Qt安裝包和Qt源碼包)》
  需要哪個版本下哪個版本,筆者經常使用得是Qt5.9和Qt5.12兩個大版本,本次下載Qt5.12.8:
  在這裏插入圖片描述

  由於是自己編譯的,我們一般在可以安裝Qt版本的時候使用Qt安裝版本的QtCreator,但是在本篇文章,我們使用源碼編譯Qt的源碼,下一篇用源碼編譯QtCreator,用以補全完全從源碼編譯搭建環境(PS:方便基於其他國產芯片使用,x86和amd64不能直接安裝)。

 

Qt從源碼編譯安裝(廢棄流程)

步驟一:下載解壓

  在這裏插入圖片描述

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

  在這裏插入圖片描述

步驟二:配置Qt

  調整當前目錄:

cd /home/yang/work/src/qt-everywhere-src-5.12.8

  然後配置:

./configure -prefix /home/yang/work/qt5.12.8 \
-release \
-opensource \
-platform linux-g++ \
-make libs \
-optimized-qmake \
-pch \
-qt-libjpeg \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-iconv \
-nomake examples \
-nomake tools \
-skip qtvirtualkeyboard \
-v

  在這裏插入圖片描述

./1.sh

  在這裏插入圖片描述

  在這裏插入圖片描述

   輸入y
  在這裏插入圖片描述

步驟三:編譯錯誤“ERROR: Feature ‘precompile_header’ was enabled, but the pre-condition ‘tests.precompile_header’ failed.”解決

  這個問題查看是因爲啓用了feature,直接禁用掉-no feature-precomplile_header:
  修改1.sh的配置參數:

#!/bin/sh
./configure -prefix /home/yang/work/qt5.12.8 \
-release \
-opensource \
-platform linux-g++ \
-make libs \
-optimized-qmake \
-pch \
-qt-libjpeg \
-qt-zlib \
-no-opengl \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-skip webengine \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-iconv \
-nomake examples \
-nomake tools \
-skip qtvirtualkeyboard \
-no-feature-precompile_header \
-v

  在這裏插入圖片描述

  繼續執行:

./1.sh

  在這裏插入圖片描述

  配置成功。

步驟四:編譯Qt源碼

  根據多年經驗,這是個至少長達半小時的過程…

make -j8

  在這裏插入圖片描述

  編譯出現錯誤:
  在這裏插入圖片描述

  通過強制Qt編譯對ARM處理器的“ neon”支持來解決此問題,只需在“ ./configure”之後的“ qtbase / mkspecs / qmodule.pri”中修改以下行:

vi qtbase /mkspecs /qmodule.pri

  在這裏插入圖片描述

  (錯誤路線:配置時去掉precomplile_header才能過去,一直覺得不妥,本次錯誤又是缺少定義,博主一直懷疑這個問題,在研發過程中發現qmodule.pri去改cpu的時候發現有這個指令,所以乾脆直接強制給他添加上了,但是後續論證了,還是報這個錯誤,所等於個把小時證明無關,繼續嘗試,但qmodule.pri還是修改了,因爲預定是常規功能)
  到這裏弄了幾個小時這個錯誤也沒有比較大的進展,源碼分析一些時間也無解,現在不死磕了,往回退步驟,嘗試其他配置路徑。

 

Qt從源碼編譯安裝

步驟一:下載解壓

  在這裏插入圖片描述

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

  在這裏插入圖片描述

步驟二:配置Qt

  調整當前目錄:

cd /home/yang/work/src/qt-everywhere-src-5.12.8

  然後配置:

./configure -prefix /home/yang/work/qt5.12.8 \
-confirm-license \
-release \
-opensource \
-v

  在這裏插入圖片描述

  配置通過:
  在這裏插入圖片描述

  (PS1:有時候是從一開始就走錯大方向了,閾值2小時,超過2小時往前面退一個步驟找解決方案)
  (PS2:太晚了,明天再繼續)

步驟三:編譯Qt源碼

  配置基本全開了,配置比較可以,總體也編譯了半個多小時。

make -j8

  在這裏插入圖片描述

  補充一次make(避免多線程的時候,一個編譯掛了但是太快沒停被其他線程沖掉了輸出)

步驟四:安裝make install

make install

  前面編譯的東西有點多,這裏也花了十幾分鍾才install完成。
  在這裏插入圖片描述

步驟五:檢查Qt使用qmake

  在這裏插入圖片描述

  至此qmake就編譯就好了,但是沒有qtcreator,下一篇將編譯qtcreator,配置好本篇的編譯庫來測試開發環境。

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