VS Code 使用 MinGW64 編譯 C++ 代碼并配置 MATIO 庫的完整步驟
1. 安裝 MSYS2
-
下載 MSYS2
- 訪問 MSYS2 官網
- 下載安裝包(選擇
x86_64
版本) - 默認安裝路徑:
C:\msys64
-
更新 MSYS2 包數據庫
- 打開 MSYS2 MinGW 64-bit(注意不是 MSYS)
pacman -Syu
- 關閉終端,重新打開后再次更新:
pacman -Su
2. 安裝 MinGW64 工具鏈
在 MSYS2 MinGW 64-bit 終端中執行:
pacman -S --needed mingw-w64-x86_64-toolchain
驗證安裝:
g++ --version # 應顯示 MinGW64 的 g++ 版本
3. 安裝 MATIO 庫
在 MSYS2 MinGW 64-bit 終端中執行:
pacman -S mingw-w64-x86_64-matio
4. 配置 VS Code
-
安裝擴展
- C/C++ (Microsoft)
- Code Runner(可選)
-
設置環境變量
- 將 MinGW64 的
bin
目錄添加到系統PATH
:C:\msys64\mingw64\bin
- 重啟 VS Code 使生效。
- 將 MinGW64 的
-
配置 C/C++ 插件
- 創建
.vscode/c_cpp_properties.json
:
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","C:/msys64/mingw64/include/**" // MATIO 頭文件路徑],"compilerPath": "C:/msys64/mingw64/bin/g++.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "windows-gcc-x64"}],"version": 4 }
- 創建
5. 配置編譯任務
創建 .vscode/tasks.json
:
{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "g++","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe","-I", "C:/msys64/mingw64/include", // MATIO 頭文件"-L", "C:/msys64/mingw64/lib", // MATIO 庫路徑"-lmatio", // 鏈接 MATIO 庫"-lz" // 依賴庫],"group": {"kind": "build","isDefault": true}}]
}
6. 測試代碼示例
創建 test_matio.cpp
:
#include <iostream>
#include <matio.h>int main() {mat_t *mat = Mat_Open("test.mat", MAT_ACC_RDONLY);if (!mat) {std::cerr << "Error opening MAT file!" << std::endl;return 1;}matvar_t *var;while ((var = Mat_VarReadNext(mat)) != nullptr) {std::cout << "Found variable: " << var->name << std::endl;Mat_VarFree(var);}Mat_Close(mat);return 0;
}
7. 編譯與運行
-
生成測試 MAT 文件(可選)
使用 MATLAB 或 Python 創建test.mat
:import scipy.io scipy.io.savemat('test.mat', {'data': [1, 2, 3]})
-
編譯代碼
- 在 VS Code 中打開
test_matio.cpp
- 按
Ctrl+Shift+B
執行編譯任務(使用tasks.json
)
- 在 VS Code 中打開
-
運行程序
- 將
test.mat
放在可執行文件同目錄 - 在終端中執行:
.\test_matio.exe
- 輸出示例:
Found variable: data
- 將
常見問題解決
-
鏈接錯誤
undefined reference
- 確保
tasks.json
中正確包含-lmatio -lz
。 - 檢查庫路徑:
-L C:/msys64/mingw64/lib
。
- 確保
-
運行時缺失 DLL
- 將
C:\msys64\mingw64\bin
添加到系統PATH
。 - 或復制以下 DLL 到程序目錄:
libmatio-2.dll libz.dll
- 將
-
MAT 文件路徑錯誤
- 確保
test.mat
位于可執行文件的工作目錄。
- 確保