在Windows下使用CMake+MinGW搭建C/C++編譯環境
1.1 MinGW
MinGW 是一個可自由使用和自由釋出的Windows特定標頭檔案和使用GNU工具集匯入庫的集合,允許你生成本地的Windows程式而不需要第三方C執行時庫。簡單說,MinGW是一個編譯環境,包含了C++程式碼編譯過程中需要的三方庫、標頭檔案……用於完成C++原始碼的編譯、連結,類似於早期Windows下的Turbo C。現在的VisualStudio環境集成了編譯、連線的功能,所以實際的編譯、連線過程對開發者是不可見的,不同的是,VS使用了微軟的編譯器、聯結器。在安裝、配置MinGW後,我們就可以在命令列中通過g++命令編譯、連結生成可執行檔案。
1.2 CMake
CMake是一個跨平臺的自動化建構系統,它使用一個名為 CMakeLists.txt 的檔案來描述構建過程。CMake可以執行在Windows和Linux環境下,根據配置的編譯器不同,生成符合所在作業系統的Makefile檔案,在Windows下可以生成VS的工程檔案系統。
2 工具安裝配置:
2.1 MinGW
2.1.1 安裝
從MinGW官網(MinGW Installer)獲取MinGW安裝檔案,雙擊開始安裝:
安裝目錄可以自己指定,但必須記錄,以便後續配置環境變數
安裝工具開始下載需要的安裝檔案
“Basic Setup”中的所有包建議選擇,其他的根據自己需要選擇
- 安裝過程中,部分包可能下載失敗,不用關注,等完成後再更新一次即可,如果更新也失敗可換時間重試,或者等到後續用到的時候再下載。
2.1.2 配置
在設定Windows環境變數,在Path中增加MinGW的bin目錄
注意:
- 啟動Windows命令列,執行g++ –version命令,如果能查到g++版本,則說明配置正確。
- 如果命令執行失敗,則可能是G++安裝失敗,或者環境變數設定不生效,可以重新安裝或者重新配置環境變數後重新啟動即可。
2.2 CMake
2.2.1 安裝
從CMake官網(CMake Installer)取CMake安裝檔案,雙擊後開始安裝:
- 安裝過程中建議參照以下配置設定環境變數:
2.2.2 配置
CMake在安裝過程中已經配置了環境變數,所以不需要手動配置。安裝完成後,可以在命令列中執行命令cmake –version,如果安裝配置正確,則會顯示下列資訊:
3. 使用MinGW在Windows環境下編譯C++程式碼並生成可執行檔案:
3.1 原始碼所在目錄結構:
3.2 建立CMakeList檔案:
3.3 啟動GUI版CMake工具,生成Makefile:
- 配置編譯目錄——原始碼根目錄:
- 點選Config按鈕,配置編譯器:
- 點選Generate按鈕,生成makefile:
3.4 執行Make命令,生成可執行檔案:
4. 常見錯誤:
4.1 在CMake介面點選Config,提示工程檔案無效:
此時可能是CMakeList.txt不存在或者命名錯誤,請手動建立改檔案,檔名大小寫敏感,建立檔案後,請重新啟動CMake。
4.2 CMakeList.txt中存在語法錯誤:
圖示在CMakeList.txt檔案第10行,檔案路徑使用“\”,這是不合法的,應該改成“//”
4.3 在make過程中,報“標頭檔案找不到”錯誤:
該問 題可能是引用了在MinGW中不存在的標頭檔案。當在Window中藉助VS工具開發的程式碼時,該問題可能較為常見。如果大家建立的工程需要在Linux 下執行,那在編碼過程中,儘量避免使用Windows系統檔案或者VS專有的標頭檔案,或者通過編譯巨集進行區分。