[Qt] 開始安裝開發程式

為什麼是Qt

本來沒有什麼接觸到,因為剛好手邊要研究的程式是以它為基礎開發的,所以必須先研究一下。

簡單來說,它可以開發圖形介面 (GUI),也可以做 指令介面 (CUI),更多人喜愛它的理由是它可以跨平台,Windows / Linux 通吃,也就是說它能用在 PC / Android 等上面,它的模組也夠豐富,它也能做底層,像是驅動開發。

再來,它是C++ 基底的,所以在 Windows 環境下可以搭配 Visual Studio 或是 MinGW 來配置開發環境。為了簡化工具問題,這邊選用 MinGW。

安裝Qt開發環境

1。先從 https://www.qt.io/download 來下載,這邊有分商業版和試用版。

2。下載後安裝過程中會需要建立一個Qt帳號。

3。安裝過程中要勾選 Qt 的版本和 MinGW ,我沒有什麼概念,選擇了 Qt 5.12.12 和 MinGW 7.3.0 64-bit。

4。安裝完成後,就可以打開 Qt Creator 開始試跑程式了。

5。從 Qt Creator > Welcome > Examples 可以看到許多的開發模版,輸入 hello 選一個最簡單的 “Hello tr() Example" 來建立一個新專案。

6。專案建立的第一步,就是選擇使用的工具 kits,這邊選 Desktop Qt 5.12.12 MingGW 64-bit,最後按 “Configure Project"。這樣就建立好一個 Qt Project 啦。

7。再來,如何 Build & Run,按下左邊綠色播放鍵,就可以看到一個 hello world! 小視窗跑出來,表示建置成功!

8。接下來,試看看 QtCreator 外部,也就是直接執行 Build 之後產生的 EXE 是否正常。依序發現了以下問題:

✖ The code execution cannot proceed because Qt5Cored.dll was not found. Reinstalling the program may fix this problem.
✖ The code execution cannot proceed because Qt5Guid.dll was not found. Reinstalling the program may fix this problem.
✖ The code execution cannot proceed because Qt5Widgets.dll was not found. Reinstalling the program may fix this problem.
✖ The code execution cannot proceed because libgcc_s_seh-1.dll was not found. Reinstalling the program may fix this problem.

9。前面問題,表示 EXE 還需要一些外部鏈結 DLL 才能執行,官方建議使用 windeployqt.exe 來解決。該程式在 Qt 安裝目錄下可以找到,指令如下
windeployqt.exe
該指令會將這個 EXE 檔所需要的所有 Qt 資料都複製到 EXE 所在的路徑下。

10。再執行 EXE 看看,依然出現錯誤視窗。
✖ The code execution cannot proceed because libgcc_s_seh-1.dll was not found. Reinstalling the program may fix this problem.

有人建議使用 Dependency Walker 來檢查 EXE 需要哪些 dll,但這個程式似乎有點老舊。最後得知這個則是由 MinGW 來提供,於是一樣從 Qt 安裝目錄下的 MinGW 來複製出 libgcc_s_seh-1.dll,執行,結果出現無法正常啟動 (0xc000007b) 的錯誤…

11。再從 Qt 安裝目錄下的 MinGW 來複製出 libstdc++-6.dll, libwinpthread-1.dll ,再執行,成功囉!

參考連結

Qt 編程指南[簡] – 從開發環境到Hello World, 各項GUI介紹, 延伸各種應用, 加上最後的安裝佈署;一部誠意完整的線上電子書
https://qtguide.ustclug.org/

iT邦幫忙/第12屆iThome鐵人賽/Qt 跨平台應用程式開發 – chchwy 寫了三篇文章手把手的教學,後面沒有再更新有點可惜
https://ithelp.ithome.com.tw/articles/10233582

發表留言