文章目錄
- 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版本的交叉編譯器
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZj91YpB3IwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxSPRpXT5VEViZjTzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcugTM0MzMxUTM0ETMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
跟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配置
按如下的步驟添加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++ 。
(題外話這裡為什麼不是 arm poky linux gnueabi gcc 呢? gcc 是編譯 c 語言的, g++可以編譯 c 語言還包括 c++,我們 Qt 程式設計語言就是 c++)。
這裡說明一下為什麼要在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
儲存退出後,先關閉目前的 Qt Creator 。再在終端使用指令啟動 Qt Creator 。注意要想這個環境變量生效, 必需通過腳本來啟動 Qt Creator ,這裡很重要啊 沒使能環境變量去使用imx6 kits 會出現“ make c ”之類的錯誤 。
通過腳本運作
打開後,找到一個例程,右鍵建構,這裡是沒有辦法運作,因為使用的交叉編譯器的ARM的。
檢查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)
儲存退出就可以了。
過程中出現的問題
出現錯誤Failed to load module “canberra-gtk-module”
出現錯誤No tool chain set from kit “Desktop Qt 5.6.2 GCC 64bit”.
打開Qt之後,選擇項目,建構,右下角,紅色
顯示qmake之後,不能進行make操作
sudo apt-get installbuild-essential
sudo apt-get install libglu1-mesa-dev
安裝完畢,可以正常建構
Windows版本
按照最初的設想,希望是在windows環境下進行QT的編輯,最後使用Linux的qt進行編譯。windows版本也隻是一個編寫的過程,是以安裝起來也沒有像Linux中一樣繁瑣的過程。
把寫好的工程複制到linux環境下
qmake
make
這個Qt教程感覺還是很不錯的,至少有個入門。