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
位于可执行文件的工作目录。
- 确保