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

Windows/Linux下vscode+vcpkg管理C++包链接方法

1. 安装和设置 vcpkg

Windows:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
.\bootstrap-vcpkg.bat
.\vcpkg integrate install

Linux:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install

2. VSCode 扩展安装

安装必要的扩展:

  • C/C++ Extension Pack
  • CMake Tools(如果使用 CMake)

3. 配置方式

方式一:使用 CMake(推荐)

创建 CMakeLists.txt:

cmake_minimum_required(VERSION 3.20)
project(MyProject)set(CMAKE_CXX_STANDARD 17)# 查找包
find_package(fmt CONFIG REQUIRED)
find_package(nlohmann_json CONFIG REQUIRED)add_executable(main main.cpp)# 链接库
target_link_libraries(main PRIVATE fmt::fmt nlohmann_json::nlohmann_json)

配置 CMakePresets.json:

{"version": 3,"configurePresets": [{"name": "default","toolchainFile": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"}]
}

方式二:配置 c_cpp_properties.json

.vscode/c_cpp_properties.json 中配置:

Windows:

{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","C:/vcpkg/installed/x64-windows/include"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.19041.0","compilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.30.30705/bin/Hostx64/x64/cl.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "windows-msvc-x64"}],"version": 4
}

Linux:

{"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/path/to/vcpkg/installed/x64-linux/include"],"defines": [],"compilerPath": "/usr/bin/gcc","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "linux-gcc-x64"}],"version": 4
}

4. 配置编译任务

创建 .vscode/tasks.json

Windows:

{"version": "2.0.0","tasks": [{"type": "shell","label": "C/C++: cl.exe build active file","command": "cl.exe","args": ["/Zi","/EHsc","/Fe:","${fileDirname}\\${fileBasenameNoExtension}.exe","${file}","/I", "C:\\vcpkg\\installed\\x64-windows\\include","/link","/LIBPATH:C:\\vcpkg\\installed\\x64-windows\\lib"],"group": {"kind": "build","isDefault": true}}]
}

Linux:

{"version": "2.0.0","tasks": [{"type": "shell","label": "C/C++: g++ build active file","command": "/usr/bin/g++","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}","-I/path/to/vcpkg/installed/x64-linux/include","-L/path/to/vcpkg/installed/x64-linux/lib","-lfmt"  // 根据需要添加具体库],"group": {"kind": "build","isDefault": true}}]
}

5. 环境变量设置

设置 VCPKG_ROOT 环境变量:

  • Windows: set VCPKG_ROOT=[your vcpkg installed path]
  • Linux: export VCPKG_ROOT=[your vcpkg installed path]

6. 使用示例

安装包:

vcpkg install fmt nlohmann-json

示例代码 main.cpp:

#include <fmt/core.h>
#include <nlohmann/json.hpp>int main() {fmt::print("Hello vcpkg!\n");nlohmann::json j;j["name"] = "vcpkg";j["version"] = "2024";fmt::print("JSON: {}\n", j.dump());return 0;
}

最佳实践建议

  1. 使用 CMake - 最灵活且跨平台兼容性好
  2. 创建 vcpkg.json - 在项目根目录创建依赖文件:
    {"dependencies": ["fmt","nlohmann-json"]
    }
    
  3. 版本控制 - 将 vcpkg.json 加入版本控制,但排除 vcpkg_installed 目录
  4. 使用 manifest 模式 - 让 vcpkg 自动管理项目依赖

这样配置后,VSCode 就能正确识别和链接 vcpkg 管理的包了。

http://www.xdnf.cn/news/1439299.html

相关文章:

  • CD75.【C++ Dev】异常
  • 从发现到恢复,看瑞数信息如何构建“抗毁重构”实战路径
  • 网站建设需要多少费用?网站建设的步骤和流程?
  • 01-Redis 发展简史与核心定位解析:从诞生到三大产品矩阵
  • 涉私数据安全与可控匿名化利用机制研究(上)
  • Zotero白嫖腾讯云翻译
  • AI优化SEO关键词策略指南
  • 计算机网络---CA证书体系(Certificate Authority)
  • 机器学习从入门到精通 - 逻辑回归为什么是分类之王?深入决策边界与概率校准
  • 亚马逊ASIN定位广告想爆单?先搞懂流量逻辑!多账号增效策略直接用
  • Java版本兼容性:JDK 21的SDK在JDK 1.8使用
  • 嵌入式学习 day63 LCD屏幕驱动、ADC驱动、HC-SR04、ds18b20
  • 什么是好的系统设计
  • LangGraph MCP智能体开发
  • 【JavaEE】(22) Spring 事务
  • 飞算JavaAI炫技赛:一天完成学生成绩综合统计分析系统开发(含源码)
  • 【Axure高保真原型】区间缩放柱状图
  • 数据结构从青铜到王者第二十话---Map和Set(3)
  • 漫谈《数字图像处理》之图像清晰化处理
  • 配置机载电脑开机自启动ros2节点和配置can0
  • 【第四章:大模型(LLM)】10.微调方法与实战-(1)Prompt Tuning
  • C++ 多线程编程
  • c++多线程(1)------创建和管理线程td::thread
  • logging:报告状态、错误和信息消息
  • 《用 Flask + SQLAlchemy 构建任务管理应用:从基础架构到实战优化》
  • 面试题:JVM与G1要点总结
  • 哪些AI生成PPT的软件或网站支持多平台使用?都支持哪些平台?
  • Linux之centos 系统常用命令详解(附实战案例)
  • 多路复用 I/O 函数——`select`函数解析
  • 一次惊心动魄的线上事故:记一次内存泄漏Bug的排查与解决全过程