imx6ull+debian10 構建靜態qt交叉編譯環境

来源:https://www.cnblogs.com/GregTse/archive/2020/01/16/12202303.html
-Advertisement-
Play Games

# PC:Ubuntu18.04# GCC: arm-linux-gnueabihf- 7.4.0# 開發板:# imx6ull+debian10(文件系統為野火提供的) # 此處需要編譯的是帶gstreamer的qt 靜態庫,僅著重說明安裝gstreamer的庫,忽略其他工具的安裝# 參考:太多, ...


# PC:Ubuntu18.04
# GCC: arm-linux-gnueabihf- 7.4.0
# 開發板:
# imx6ull+debian10(文件系統為野火提供的)

# 此處需要編譯的是帶gstreamer的qt 靜態庫,僅著重說明安裝gstreamer的庫,忽略其他工具的安裝
# 參考:太多,忘了大部分
https://wiki.qt.io/RaspberryPi2EGLFS

#期間PC端安裝了同樣的庫,但好像沒什麼用
# 開發板安裝gstreamer相關庫,還安裝了其他庫(試錯太多,忘了)
apt-get install libgstreamer1.0-dev
# 本人安裝了以下的庫才解決問題: ERROR: Feature 'gstreamer_1_0' was enabled, but the pre-condition 'libs.gstreamer_1_0' failed.
apt-get install gstreamer1.0-omx libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
# 安裝以上庫即可編譯qt
# 開發板安裝一下庫解決運行報錯:
# GStreamer-CRITICAL: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed
apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools


# 建立開發板的文件系統
# 建立文件夾
# 參考: https://wiki.qt.io/RaspberryPi2EGLFS
# 8.[on host PC] Create a sysroot. Using rsync we can properly keep things synchronized in the future as well. Replace raspberrypi.local with the address of the Pi

mkdir sysroot sysroot/usr sysroot/opt
rsync -avz [email protected]:/lib sysroot
rsync -avz [email protected]:/usr/include sysroot/usr
rsync -avz [email protected]:/usr/lib sysroot/usr

# 配置qt,直接解壓源碼,不需要對源碼進行任何更改,qt版本相差不大應該都可以
./configure -static -prefix /opt/imx6/qt-5.9.8-static -extprefix /opt/imx6/qt-5.9.8-static \
-device linux-imx7-g++ \
-device-option CROSS_COMPILE=arm-linux-gnueabihf- \
-sysroot /../../../../../../home/greg/imx6/debian10sysroots \
-no-openssl -no-cups -no-iconv -qt-zlib \
-no-opengl -no-sse2 -no-xcb \
-nomake examples -nomake tests -v -opensource \
-skip qt3d -skip qtcanvas3d -skip webengine -skip qtpurchasing \
-skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -skip qtwayland \
-confirm-license -qreal double -gstreamer 1.0
# -static 設置靜態編譯,預設動態
# 其他配置可根據實際需要增刪
# 以上文件系統也許可以用庫連接代替,未測試
# -sysroot 為目標使用的根文件系統,可從開發板直接獲取相關庫,這裡的文件系統直接從SD卡裡複製整個文件
# 註意:此處文件系統必須保證存在,否則無法編譯qt程式(需要用的裡面的動態庫)

# 配置成功
make -j8
# 慢的電腦要20~30分鐘,快的10~20分鐘,再快的不到10分鐘

make install

#運行時,開發板需要在qt安裝目錄中的lib建立fonts,存放字體文件
mkdir -p /opt/imx6/qt-5.9.8-static/lib/fonts/
cp 字體文件 /opt/imx6/qt-5.9.8-static/lib/fonts/


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • /// <summary> /// 截取屏幕 /// </summary> /// <param name="x">起點X坐標</param> /// <param name="y">起點Y坐標</param> /// <param name="width">截取寬度</param> /// <pa ...
  • QingTing.Fm 是調用蜻蜓FM API 查詢界面內容,進行線上播放。 Release地址下載 環境 Visual Studio 2019,dotNet Framework 4.6.1 SDK 支持Windows Win7、8、10 源碼地址 效果 ...
  • // 引入必要的命名空間 using System.IO; using System.Drawing.Imaging; // 代碼部分 // private byte[] photo;//公用緩衝區 public string SourFilePath;//源圖片文件路徑 public string ...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Prog ...
  • 在這一章,我們將建立一個垃圾郵件過濾分類模型。我們將使用一個包含垃圾郵件和非垃圾郵件的原始電子郵件數據集,並使用它來訓練我們的ML模型。我們將開始遵循上一章討論的開發ML模型的步驟。這將幫助我們理解工作流程。 在本章中,我們將討論以下主題: l 定義問題 l 準備數據 l 數據分析 l 構建數據的特 ...
  • 最近在一個環境相對比較複雜(F5+nginx)的項目中部署系統,系統要集成windows域驗證來實現單點登錄(即使用windows賬戶直接登錄系統,不用輸入賬號密碼)。這裡就遇到問題了,域認證很不穩定,時靈時不靈,瀏覽器彈出輸入賬號密碼,但並不能保持。期初一直懷疑是瀏覽器設置會系統配置問題,後面Go ...
  • 1.典型固定式偏置電路 圖1-97所示是經典的固定式偏置電路。電路中的VT1是NPN型三極體,採用正極性電源+V供電。 圖1-97 經典的固定式偏置電路 (1)固定式偏置電阻。在直流工作電壓+V和電阻R1的阻值大小確定後,流入三極體的基極電流就是確定的,所以R1稱為固定式偏置電阻。 (2)基極電流回 ...
  • 爬蟲項目需要用到lxml包,解析html文件,但是linux伺服器沒有lxml包, 伺服器中python版本是3.8. 直接使用命令安裝: pip install lxml 中途會報錯,錯誤提示我沒有保存,懶得再現了。以為是python版本問題,再運行: pip3 install lxml 註意此命 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 在我們開發過程中基本上不可或缺的用到一些敏感機密數據,比如SQL伺服器的連接串或者是OAuth2的Secret等,這些敏感數據在代碼中是不太安全的,我們不應該在源代碼中存儲密碼和其他的敏感數據,一種推薦的方式是通過Asp.Net Core的機密管理器。 機密管理器 在 ASP.NET Core ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 順序棧的介面程式 目錄順序棧的介面程式頭文件創建順序棧入棧出棧利用棧將10進位轉16進位數驗證 頭文件 #include <stdio.h> #include <stdbool.h> #include <stdlib.h> 創建順序棧 // 指的是順序棧中的元素的數據類型,用戶可以根據需要進行修改 ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • C總結與剖析:關鍵字篇 -- <<C語言深度解剖>> 目錄C總結與剖析:關鍵字篇 -- <<C語言深度解剖>>程式的本質:二進位文件變數1.變數:記憶體上的某個位置開闢的空間2.變數的初始化3.為什麼要有變數4.局部變數與全局變數5.變數的大小由類型決定6.任何一個變數,記憶體賦值都是從低地址開始往高地 ...
  • 如果讓你來做一個有狀態流式應用的故障恢復,你會如何來做呢? 單機和多機會遇到什麼不同的問題? Flink Checkpoint 是做什麼用的?原理是什麼? ...
  • C++ 多級繼承 多級繼承是一種面向對象編程(OOP)特性,允許一個類從多個基類繼承屬性和方法。它使代碼更易於組織和維護,並促進代碼重用。 多級繼承的語法 在 C++ 中,使用 : 符號來指定繼承關係。多級繼承的語法如下: class DerivedClass : public BaseClass1 ...
  • 前言 什麼是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的開發便利性簡化了分散式系統的開發,比如服務註冊、服務發現、網關、路由、鏈路追蹤等。Spring Cloud 並不是重覆造輪子,而是將市面上開發得比較好的模塊集成進去,進行封裝,從 ...
  • class_template 類模板和函數模板的定義和使用類似,我們已經進行了介紹。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同。類模板用於實現類所需數據的類型參數化 template<class NameType, class AgeType> class Person { publi ...
  • 目錄system v IPC簡介共用記憶體需要用到的函數介面shmget函數--獲取對象IDshmat函數--獲得映射空間shmctl函數--釋放資源共用記憶體實現思路註意 system v IPC簡介 消息隊列、共用記憶體和信號量統稱為system v IPC(進程間通信機制),V是羅馬數字5,是UNI ...