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

VS Code配置MinGW64编译libxlsxwriter和xlsxio库

VS Code用MinGW64编译C++代码安装MSYS2软件并配置libxlsxwriter和xlsxio库和测试引用库代码的完整具体步骤。


1. 安装 MSYS2

  1. 下载安装包:
    • 官网:https://www.msys2.org/
    • 选择 x86_64 版本下载
  2. 安装:
    • 运行安装程序,默认路径 C:\msys64
    • 勾选 Run MSYS2 now 完成初始化
  3. 更新基础包(在打开的 MSYS2 终端中执行):
    pacman -Syu
    # 关闭窗口后重新打开终端
    pacman -Su
    

2. 安装 MinGW64 工具链

在 MSYS2 终端中执行:

pacman -S --needed mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-make

3. 安装依赖库

(1) 安装 libxlsxwriter(写 Excel 文件)
pacman -S mingw-w64-x86_64-libxlsxwriter
(2) 安装 xlsxio(读 Excel 文件,替代 xlsxreader)
# 安装依赖
pacman -S mingw-w64-x86_64-expat mingw-w64-x86_64-minizip# 克隆源码
git clone https://github.com/brechtsanders/xlsxio.git
cd xlsxio# 编译安装
mkdir build && cd build
cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=/mingw64 ..
make install

4. 配置 VS Code

(1) 设置环境变量
  • 将 MinGW64 加入系统 PATH
    C:\msys64\mingw64\bin
    
  • 重启 VS Code 使配置生效。
(2) 安装扩展
  • C/C++ (Microsoft)
  • CMake Tools (可选)
(3) 配置 c_cpp_properties.json
  1. Ctrl+Shift+P > C/C++: Edit Configurations (UI)
  2. 添加包含路径:
    "includePath": ["${workspaceFolder}/**","C:/msys64/mingw64/include","C:/msys64/mingw64/include/xlsxio"
    ],
    
  3. 添加库路径:
    "compilerPath": "C:/msys64/mingw64/bin/g++.exe"
    
(4) 配置 tasks.json
  1. 创建 .vscode/tasks.json
  2. 写入:
{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "g++","args": ["-g", "-std=c++11","${file}","-o", "${fileDirname}/${fileBasenameNoExtension}.exe","-I", "C:/msys64/mingw64/include","-L", "C:/msys64/mingw64/lib","-lxlsxwriter", "-lxlsxio_read"],"group": { "kind": "build", "isDefault": true },"problemMatcher": ["$gcc"]}]
}

5. 测试代码

(1) 写入 Excel 测试(libxlsxwriter)

创建 write_example.cpp

#include "xlsxwriter.h"
int main() {lxw_workbook *wb = workbook_new("test.xlsx");lxw_worksheet *ws = workbook_add_worksheet(wb, NULL);worksheet_write_string(ws, 0, 0, "Hello", NULL);worksheet_write_number(ws, 1, 0, 123.45, NULL);return workbook_close(wb);
}
(2) 读取 Excel 测试(xlsxio)

创建 read_example.cpp

#include <xlsxio_read.h>
#include <iostream>
int main() {xlsxioreader xlsxioread = xlsxioread_open("test.xlsx");if (xlsxioread) {xlsxioreadersheet sheet = xlsxioread_sheet_open(xlsxioread, NULL, XLSXIOREAD_SKIP_EMPTY_ROWS);if (sheet) {char* value;while (xlsxioread_sheet_next_row(sheet)) {while ((value = xlsxioread_sheet_next_cell(sheet)) != NULL) {std::cout << value << "\t";free(value);}std::cout << std::endl;}xlsxioread_sheet_close(sheet);}xlsxioread_close(xlsxioread);}return 0;
}

6. 编译运行

  1. 编译写入程序
    • 打开 write_example.cpp
    • Ctrl+Shift+B 编译
    • 终端执行生成的文件:
      ./write_example.exe
      
  2. 编译读取程序
    • 打开 read_example.cpp
    • Ctrl+Shift+B 编译
    • 终端执行:
      ./read_example.exe
      

常见问题解决

  1. 库链接失败
    • 检查 tasks.json 中的 -L 路径是否正确
    • 确认库文件存在:C:/msys64/mingw64/lib/libxlsxwriter.alibxlsxio_read.a
  2. 头文件缺失
    • c_cpp_properties.json 中检查 includePath
  3. MSYS2 更新问题
    • 定期运行 pacman -Syu 更新包

注意:xlsxreader 库已由 xlsxio 替代(提供读写支持)。如需其他库,可通过 pacman -Ss 库名 搜索 MSYS2 仓库。

http://www.dtcms.com/a/335729.html

相关文章:

  • 【R语言】R语言矩阵运算:矩阵乘除法与逐元素乘除法计算对比
  • 开源数据发现平台:Amundsen Metadata Service 元数据服务
  • VS Code配置MinGW64编译SQLite3库
  • uniappx 安卓端本地打包的一些总结
  • Sklearn 机器学习 邮件文本分类 计数器向量化文本
  • 学习游戏制作记录(玩家掉落系统,删除物品功能和独特物品)8.17
  • 论文投稿时,如何绘制插入无失真的图
  • 44.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--扩展功能--集成网关--网关集成认证(三)
  • 第七十九:AI的“急诊科医生”:模型失效(Loss Explode)的排查技巧——从“炸弹”到“稳定”的训练之路!
  • scikit-learn 中的均方误差 (MSE) 和 R² 评分指标
  • React 第七十节 Router中matchRoutes的使用详解及注意事项
  • 学习一下B树和B+树
  • map和join的用法
  • K8S集群环境搭建
  • [激光原理与应用-291]:理论 - 波动光学 - 相关光与不相干光:光的干涉不是随随便便就能产生的,需要满足严格的条件方能产生光的干涉(条纹)
  • 【科研绘图系列】R语言绘制探究浮游植物成熟阶段的光合作用与溶解性有机碳
  • OpenCV 图像处理核心技术:边界填充、算术运算与滤波处理实战
  • 在 Element UI 的 el-table 中实现某行标红并显示删除线
  • Leaflet赋能:WebGIS视角下的省域区县天气可视化实战攻略
  • Python训练营打卡Day35-复习日
  • 数据赋能(396)——大数据——抽象原则
  • 奈飞工厂无广告纯净版官方下载,最新官网入口
  • 常用的SQL语句
  • 使用vscode的task.json来自动执行make命令,而不直接使用终端
  • java八股文-(spring cloud)微服务篇-参考回答
  • 校园综合数据分析可视化大屏 -Vue纯前端静态页面项目
  • JavaScript字符串详解
  • 2025:AI狂飙下的焦虑与追问
  • 【数据分享】黑龙江省黑土区富锦市土地利用数据
  • 【C#补全计划】多线程