当前位置: 首页 > ds >正文

VS Code配置MinGW64编译GLPK(GNU Linear Programming Kit)开源库

VS Code用MinGW64编译C++代码安装MSYS2软件并配置GLPK(GNU Linear Programming Kit)开源库和测试引用库代码的完整具体步骤。


1. 安装 MSYS2
  1. 访问 MSYS2 官网
  2. 下载安装包(64位)
  3. 按默认路径安装(如 C:\msys64
  4. 安装完成后,启动 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. 配置环境变量
  1. 打开系统设置 → 搜索“环境变量”
  2. 用户变量 中添加:
    • 变量名:Path
    • 变量值:C:\msys64\ucrt64\bin(确保在系统 Path 前)
  3. 验证安装(打开新终端):
    gcc --version
    glpsol --version
    

5. 配置 VS Code
  1. 安装扩展
    • C/C++ (Microsoft)
    • Code Runner (可选)
  2. 创建测试项目
    • 新建文件夹(如 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. 编译与运行
  1. 手动编译
    g++ test.cpp -o test -I"C:/msys64/ucrt64/include" -L"C:/msys64/ucrt64/lib" -lglpk
    
  2. 在 VS Code 中
    • Ctrl+Shift+B → 选择 Build GLPK
  3. 运行程序
    • 终端中执行:./test.exe
    • 或使用 Code Runner 扩展(按 Ctrl+Alt+N

9. 预期输出
GLPK version: 4.65
Problem created.
Objective value: 1000
x = 100

故障排除
  1. 头文件缺失
    • 检查路径:C:/msys64/ucrt64/include/glpk.h
  2. 链接错误
    • 确保 -lglpk 放在文件参数后
    • 检查库路径:C:/msys64/ucrt64/lib/libglpk.a
  3. 运行时 DLL 缺失
    • C:\msys64\ucrt64\bin 添加到系统 Path
    • 或复制 libglpk.dll 到程序目录
http://www.xdnf.cn/news/18123.html

相关文章:

  • 一键检测接口是否存活:用 Python/Shell 写个轻量级监控脚本
  • 《MySQL 数据库备份与视图创建全流程:从数据迁移到高效查询实战》
  • 【AI论文】NextStep-1:迈向大规模连续令牌自回归图像生成
  • 2020/12 JLPT听力原文 问题二 2番
  • HackMyVM-Uvalde
  • 高等数学 8.4 空间直线及其方程
  • macOS 中查看当前生效 shell 及配置文件的方法
  • 微服务的编程测评系统12-xxl-job-历史竞赛-竞赛报名
  • 腾讯混元大模型:实现3D打印产品生成的自动化平台
  • python---异常处理
  • 微软Wasm学习-创建一个最简单的c#WebAssembly测试工程
  • ISIS区域内、区域间计算
  • 机器学习——CountVectorizer将文本集合转换为 基于词频的特征矩阵
  • Boost搜索引擎项目(详细思路版)
  • 【3D重建技术】如何基于遥感图像和DEM等数据进行城市级高精度三维重建?
  • 扫地机器人(2025蓝桥杯省A组 H题)
  • AI重构文化基因:从“工具革命”到“生态觉醒”的裂变之路
  • 线性代数之两个宇宙文明关于距离的对话
  • 完整的VOC格式数据增强脚本
  • 狗品种识别数据集:1k+图像,6个类别,yolo标注完整
  • .net印刷线路板进销存PCB材料ERP财务软件库存贸易生产企业管理系统
  • 曲面/线 拟合gnuplot
  • 第四章:大模型(LLM)】06.langchain原理-(5)LangChain Prompt 用法
  • 第七十五章:AI的“思维操控师”:Prompt变动对潜在空间(Latent Space)的影响可视化——看懂AI的“微言大义”!
  • P2169 正则表达式
  • LeetCode 刷题【43. 字符串相乘】
  • 视觉语言模型(VLA)分类方法体系
  • Kotlin-基础语法练习一
  • 代码随想录算法训练营四十三天|图论part01
  • Ubuntu 25.04 安装并使用 MySQL 8.4.5 的步骤