天天看點

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

文章目錄

  • Linux版本
    • 交叉編譯環境搭建
      • 交叉編譯器安裝
      • qt5.6.2配置
    • 過程中出現的問題
        • 出現錯誤Failed to load module "canberra-gtk-module"
        • 出現錯誤No tool chain set from kit "Desktop Qt 5.6.2 GCC 64bit".
  • Windows版本

首先,我這裡需要Qt5.6.2軟體版本

下載下傳速度比較慢,這裡是下載下傳Linux的版本,windows版本後面我也會說。

Linux版本

把qt軟體安裝包複制到虛拟機中,準備安裝。

先修改該檔案的權限,下面為qt opensource linux x64 5.5.1.run 添加可執行權限,再執行安裝。

chmod +x qt-opensource-linux-x64-5.6.2.run
           
sudo ./qt-opensource-linux-x64-5.6.2.run
           

安裝過程就不多說了,跟windows沒啥差別,能安裝的就都安裝。

安裝目錄建議在

交叉編譯環境搭建

交叉編譯器安裝

我這裡使用的fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0版本的交叉編譯器

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

跟qt的安裝類似,修改權限,然後執行交叉編譯工具,直接執行腳本安裝交叉編譯工具,連續敲下兩次Enter鍵确認,再輸入使用者密碼即可。本次安裝的目錄為腳本所指定的預設安裝的目錄,後面的核心編譯環境的交叉編譯都是按這個安裝目錄去操作,是以建議預設安裝到 /opt/fsl-imx-x11/4.1.15-2.1.0 這個預設目錄。

chmod u+x fsl fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0.sh
           
./fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0.sh
           

指令行會提示:

Enter target directory for SDK (default: /opt/fsl-imx-x11/4.1.15-2.1.0)

連續兩次按下Enter鍵,程式将會自動安裝交叉編譯器以及QT 相關的SDK

設定環境變量:

注意“.”後面的空格

. /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
           

檢查編譯器是否安裝成功:

arm-poky-linux-gnueabi-gcc -v
           

正常情況下會列印出gcc 的版本資訊:

gcc version 5.3.0 (GCC)

qt5.6.2配置

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本
Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

按如下的步驟添加GCC 編譯器,(這裡我啰嗦一下,我們配置的是 GCC 編譯器, Windows下配置的編譯器名稱叫 MinGW Minimalist GNU on Windows ,實際上是将經典的開源 C/C++語言編譯器 GCC 移植到了 Windows 平台下)。在選項中還有更多的編譯器名稱,這一步也是 Qt 為跨平台做的一步工作。浏覽這個路徑

/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++

找到我們第 1 節裡安裝的交叉編譯器arm-poky-linux-gnueabi-g++ 。

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

(題外話這裡為什麼不是 arm poky linux gnueabi gcc 呢? gcc 是編譯 c 語言的, g++可以編譯 c 語言還包括 c++,我們 Qt 程式設計語言就是 c++)。

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

這裡說明一下為什麼要在Qt mkspec 填上 linux oe g++ 。實質這裡指定了 …/mkspesc/linux-oe-g++ 下的 qmake.conf 檔案 用于執行 qmake 時生成 Makefile)

要想正确使用安裝的編譯工具鍊 ,還需要向 Qt Creator 加入環境變量。在Qt creator 的啟動腳本裡使能環境變量,在 /opt/Qt5.5.1/Tools/QtCreator/bin/qtcreator.sh 的第一行插入使能交叉編譯工具鍊的指令

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
           

(注意這裡不能在##!!/bin/sh 以下行插入)。

sudo nano /opt/Qt5.6.2/Tools/QtCreator/bin/qtcreator.sh
           
Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

儲存退出後,先關閉目前的 Qt Creator 。再在終端使用指令啟動 Qt Creator 。注意要想這個環境變量生效, 必需通過腳本來啟動 Qt Creator ,這裡很重要啊 沒使能環境變量去使用imx6 kits 會出現“ make c ”之類的錯誤 。

通過腳本運作

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

打開後,找到一個例程,右鍵建構,這裡是沒有辦法運作,因為使用的交叉編譯器的ARM的。

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本
Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

檢查QT編譯環境:

qmake -v
           

QMake version 3.0

Using Qt version 5.6.2 in /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib

修改QT配置檔案:

sudo nano /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++/qmake.conf
           

删除 include(…/oe-device-extra.pri)

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

儲存退出就可以了。

過程中出現的問題

出現錯誤Failed to load module “canberra-gtk-module”

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

出現錯誤No tool chain set from kit “Desktop Qt 5.6.2 GCC 64bit”.

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

打開Qt之後,選擇項目,建構,右下角,紅色

顯示qmake之後,不能進行make操作

sudo apt-get installbuild-essential
           
sudo apt-get install libglu1-mesa-dev  
           

安裝完畢,可以正常建構

Linux 胎教版Qt5.6.2 安裝 環境搭建(和 出現錯誤的解決)Linux版本Windows版本

Windows版本

按照最初的設想,希望是在windows環境下進行QT的編輯,最後使用Linux的qt進行編譯。windows版本也隻是一個編寫的過程,是以安裝起來也沒有像Linux中一樣繁瑣的過程。

把寫好的工程複制到linux環境下

qmake

make

這個Qt教程感覺還是很不錯的,至少有個入門。

繼續閱讀