vscode+cmake+msvc+vcpkg的入门使用

news2024/12/28 19:17:35

一.环境安装

        1.下载vscode并安装: Download Visual Studio Code - Mac, Linux, Windows

        2.安装完成后,安装C++和cmake 相关工具,如图。

        

        3.vcpkg的下载和安装 

        克隆vcpkg的仓库到本地:https://github.com/microsoft/vcpkg.git,运行bootstrap-vcpkg.bat,会下载vcpkg.exe到当前目录,下载成功就ok了。

二.环境变量的设置

        1.vcpkg路径添加到环境变量,既可以添加全局的环境变量,也可以在vscode的cmake 设置下添加编译时的环境变量都可以。

        2.msvc编译器cl.exe的环境变量设置。

        include:

        lib:

        path:

三.设置项目

        1.拿官方示例来演示,先创建main.cpp和CMakeLists.txt

        main.cpp

#include <fmt/core.h>

int main()
{
    fmt::print("Hello World!\n");
    return 0;
}

        CMakeLists.txt

cmake_minimum_required(VERSION 3.10)

project(HelloWorld)

find_package(fmt CONFIG REQUIRED)

add_executable(HelloWorld main.cpp)

target_link_libraries(HelloWorld PRIVATE fmt::fmt)

        2.创建以来文件vcpkg.json文件。

{
  "dependencies": [
    "fmt"
  ]
}

四.编译调试

        1.上面完成后,打开vscode,打开文件夹helloword_test。

        2.选择工具包,终端输入vckpg install 安装我们的第三方依赖库fmt。

        3.点击生成按钮。

        4. 目录如下。

        build目录就是可执行程序, vcpkg_installed目录就是依赖库的目录。

        5.我们配置调试launch.json文件。

        6.launch.json文件如下,设置一下运行exe即可。

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C/C++ Launch (MSVC)",
            "type": "cppvsdbg",
            "request": "launch",
            "program": "${workspaceFolder}\\build\\Debug\\HelloWorld.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "internalConsoleOptions": "neverOpen"
        }
    ]
}

        7.调试界面截图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1960388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《学会 SpringMVC 系列 · 基础篇》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

deeplapv3 动机

语义分割是计算机视觉领域中重要的任务之一&#xff0c;语义分割的目的是为图像中的每个像素分配标签。相比于传统方法&#xff0c;以深度学习为基础的全卷积网络极大地提高了语义分割算法的性能。 在语义分割网络中&#xff0c;常用到如下2种结构&#xff1a; 空间金字塔池化…

C++STL简介(三)

目录 1.vector的模拟实现 1.1begin&#xff08;&#xff09; 1.2end&#xff08;&#xff09; 1.3打印信息 1.4 reserve&#xff08;&#xff09; 1.5 size&#xff08;&#xff09; 1.6 capacity&#xff08;&#xff09; 1.7 push_back() 1.8[ ] 1.9 pop_back() 1.10 insert&…

【涵子来信】——AI革新:1.新时代是便捷的,要会用

各位读者朋友们&#xff1a; 我们现在AI时代的十字路口&#xff0c;AI是为生活带来便利的&#xff0c;我们要会使用AI。今天这篇文章来讲述一下AI的正确使用。 一、 AI的使用 1.1.便捷之中要会辨别 AI是带来强大的&#xff0c;利用好可以给生活带来便捷。 像之前WWDC24宣传…

SAP 字符串关键字找程序

关键字查询程序 &#xff1a; RPR_ABAP_SOURCE_SCAN或RS_ABAP_SOURCE_SCAN

Python网络爬虫:基础与实战!附淘宝抢购源码

Python网络爬虫是一个强大的工具&#xff0c;用于从互联网上自动抓取和提取数据。下面我将为你概述Python网络爬虫的基础知识和一些实战技巧。 Python网络爬虫基础 1. HTTP请求与响应 网络爬虫的核心是发送HTTP请求到目标网站并接收响应。Python中的requests库是处理HTTP请求…

C语言——运算符及表达式

C语言——运算符及表达式 运算符运算符的分类&#xff08;自增运算符&#xff09;、--&#xff08;自减运算符&#xff09;赋值运算符逗号运算符&#xff08;顺序求值运算符&#xff09; 表达式 运算符 运算符的分类 C语言的运算符范围很宽&#xff0c;除了控制语句和输入输出…

从数据血缘谈一谈如何实现数据管理的“自治理”

数据治理是企业数据管理的核心&#xff0c;它通过系统性的管理行为&#xff0c;确保数据的完整性、准确性、安全性、合规性和价值最大化。数据治理有助于提高数据质量和可用性&#xff0c;减少数据管理的风险&#xff0c;增强企业对数据的信任&#xff0c;从而提升业务效率和竞…

mongodb中ret resulted in status UnknownError: 24: Too many open files

mongodb使用中遇到的问题 Invariant failure: ret resulted in status UnknownError:24:Too many open files at *** 错误原因为打开文件过多的错误&#xff0c;即“句柄数超出系统显示”。 1.需要更改一下系统的句柄数&#xff1a; 查看一下系统目前设置的句柄数 open files 对…

算法刷题day2|贪心:122. 买卖股票的最佳时机 II、55. 跳跃游戏、45. 跳跃游戏 II、1005. K 次取反后最大化的数组和

122. 买卖股票的最佳时机 II 贪心一 画出股票的折线图&#xff0c;将图中折线上升区间相加即是最大利润。 class Solution { public:int maxProfit(vector<int>& prices) {int result 0;for (int i 1; i < prices.size(); i){//下降区间直接跳过if (prices[i]…

创建完整的APP页面

完整的页面创建过程包括三个步骤 在layout目录下创建XML文件 创建与XML文件对应的Java代码 在AndroidMainfest.xml&#xff08;清单文件&#xff09;中注册页面配 一步到位的activity创建 跳转&#xff1a;意图 创建一个意图实例&#xff0c;使用setClass&#xff08;&#…

python机器学习12--Regression回归分析

1.数据准备 第一步&#xff1a;数据内容一定要有以下两种值域的因果数据。  特征&#xff08;Feature&#xff09;&#xff1a;因&#xff0c;在统计学称为自变量&#xff08;Independent Variable&#xff09;。  标签答案&#xff08;Label&#xff09;&#xff1a;果&a…

4条社交规则,让你受益

一个人只要在社会生活中&#xff0c;那他就免不了社会交往。 有时候&#xff0c;我们在社交中之所以不受欢迎&#xff0c;主要还是因为方法和策略的问题&#xff0c;也就是说缺乏对社交的深入思考&#xff0c;没有去做正确的事情。要知道&#xff0c;只要思路和方向对了&#…

【计算机毕设论文】基于SpringBoot的语音识别系统的设计与实现

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 感兴趣的可以先收藏起来&#xff0c;同学门有不懂的毕设选题&#xff0c;项目以及论文编写等相…

传统制造业物流管理有什么缺陷?智能供应链技术推动制造业转型!

在科技迅猛发展的今天&#xff0c;智能制造已成为推动工业转型和升级的关键力量。作为智能制造的重要组成部分&#xff0c;物流管理的智能化不仅关系到企业运营的效率&#xff0c;更直接影响到整个制造业的竞争力。随着中国社会物流总额的持续攀升&#xff0c;物流行业展现出了…

C语言内存函数超详解

文章目录 前言1. memcpy1. 1 memcpy 的使用1. 2 memcpy 的模拟实现 2. memmove2. 1 memmove 使用 3. memset3. 1 memset 函数的使用3. 2 memset 的模拟实现 4. memcmp4. 1 memcmp 函数的使用4. 2 memcmp 的模拟实现 前言 C语言为我们提供了字符串的一些函数&#xff0c;比如复…

arduino程序-面包板(电路搭建及上传程序控制led))(基础知识)

arduino程序-面包板&#xff08;电路搭建及上传程序控制led&#xff09;&#xff08;基础知识&#xff09; 1-12 面包板&#xff08;电路搭建及上传程序控制led&#xff09;如何使用面包板使用实际元器件搭建电路上传程序到开发板作业 1-12 面包板&#xff08;电路搭建及上传程…

esp-idf-v5.1.1 例程 ble_hid_device_demo 解析

目录 1. 获取ESP-IDF和示例代码 导航到示例代码 3. 示例代码结构 4. 关键文件解析 main.c 初始化和配置: 事件处理: esp_hidd_prf_api.c 和 esp_hidd_prf_api.h esp_hid_gap.c 和 esp_hid_gap.h 5. 编译和烧录 ESP-IDF(Espressif IoT Development Framework)是Es…

批量HEIC转JPG软件推荐:轻松处理大量苹果图片

HEIC格式是苹果设备专属的一种图片格式&#xff0c;它以其卓越的图像质量和高效的压缩能力受到用户的欢迎&#xff0c;但同时也带来了兼容性问题。在很多情况下&#xff0c;我们需要将HEIC格式转换为更为通用的JPG格式&#xff0c;以便在不同设备和平台上进行查看和编辑。对于有…