VS Code配置MinGW64编译GLPK(GNU Linear Programming Kit)开源库
VS Code用MinGW64编译C++代码安装MSYS2软件并配置GLPK(GNU Linear Programming Kit)开源库和测试引用库代码的完整具体步骤。
1. 安装 MSYS2
- 访问 MSYS2 官网
- 下载安装包(64位)
- 按默认路径安装(如
C:\msys64
) - 安装完成后,启动 MSYS2 UCRT64 终端(开始菜单中)
2. 更新系统并安装编译工具链
# 更新包数据库和核心包
pacman -Syu# 关闭窗口后重新打开终端,执行完整更新
pacman -Su# 安装编译工具链
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
3. 安装 GLPK 库
# 安装 GLPK 开发包
pacman -S mingw-w64-ucrt-x86_64-glpk
4. 配置环境变量
- 打开系统设置 → 搜索“环境变量”
- 在 用户变量 中添加:
- 变量名:
Path
- 变量值:
C:\msys64\ucrt64\bin
(确保在系统 Path 前)
- 变量名:
- 验证安装(打开新终端):
gcc --version glpsol --version
5. 配置 VS Code
- 安装扩展:
- C/C++ (Microsoft)
- Code Runner (可选)
- 创建测试项目:
- 新建文件夹(如
glpk_test
) - 创建
test.cpp
文件
- 新建文件夹(如
6. 测试代码 (test.cpp)
#include <iostream>
#include <glpk.h>int main() {// 打印GLPK版本std::cout << "GLPK version: " << glp_version() << std::endl;// 创建问题实例glp_prob *lp = glp_create_prob();glp_set_prob_name(lp, "sample");// 添加行(约束)glp_add_rows(lp, 1);glp_set_row_name(lp, 1, "constraint1");glp_set_row_bnds(lp, 1, GLP_UP, 0.0, 100.0); // 上界约束// 添加列(变量)glp_add_cols(lp, 1);glp_set_col_name(lp, 1, "x");glp_set_col_bnds(lp, 1, GLP_LO, 0.0, 0.0); // 下界>=0glp_set_obj_coef(lp, 1, 10.0); // 目标函数系数// 加载系数矩阵int ia[] = {0, 1}; // 行索引(1-based)int ja[] = {0, 1}; // 列索引double ar[] = {0.0, 1.0}; // 系数值glp_load_matrix(lp, 1, ia, ja, ar);// 求解问题glp_simplex(lp, NULL);// 输出结果double z = glp_get_obj_val(lp);double x = glp_get_col_prim(lp, 1);std::cout << "Objective value: " << z << std::endl;std::cout << "x = " << x << std::endl;// 清理glp_delete_prob(lp);return 0;
}
7. 配置编译任务 (.vscode/tasks.json)
{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "Build GLPK","command": "g++","args": ["-fdiagnostics-color=always","-g","${file}","-o","${fileDirname}\\${fileBasenameNoExtension}.exe","-I", "C:/msys64/ucrt64/include", // 头文件路径"-L", "C:/msys64/ucrt64/lib", // 库文件路径"-lglpk" // 链接GLPK库],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true}}]
}
8. 编译与运行
- 手动编译:
g++ test.cpp -o test -I"C:/msys64/ucrt64/include" -L"C:/msys64/ucrt64/lib" -lglpk
- 在 VS Code 中:
- 按
Ctrl+Shift+B
→ 选择 Build GLPK
- 按
- 运行程序:
- 终端中执行:
./test.exe
- 或使用 Code Runner 扩展(按
Ctrl+Alt+N
)
- 终端中执行:
9. 预期输出
GLPK version: 4.65
Problem created.
Objective value: 1000
x = 100
故障排除
- 头文件缺失:
- 检查路径:
C:/msys64/ucrt64/include/glpk.h
- 检查路径:
- 链接错误:
- 确保
-lglpk
放在文件参数后 - 检查库路径:
C:/msys64/ucrt64/lib/libglpk.a
- 确保
- 运行时 DLL 缺失:
- 将
C:\msys64\ucrt64\bin
添加到系统Path
- 或复制
libglpk.dll
到程序目录
- 将