6、在vscode上利用cmake创建第一个简单C++程序

news2024/12/24 21:00:43

文章目录

  • (1)前期准备工作:即安装对应的环境
    • 1)在vscode上安装插件:C/C++、Cmake、CMake tools
    • 2)安装Cmake环境(这是在前面博客提到的已经安装好gcc等环境的前提下进行的)
  • (2)新建一个空的文件夹,然后在vscode中打开
  • (3)在vscode中按快捷键(Ctrl+Shift+P)并运行CMake:Quick Start命令
  • (4)根据提示信息输入工程的名称
  • (5)然后选择可执行文件(如果您想创建一个基本的源文件和头文件,应该选择Library。如果系统提示您为文件夹配置IntelliSense,选择“允许”)
  • (6)可以按照下图来进行选择,也可以.打开命令选项板(Ctrl+Shift+P)并运行CMake:选择工具包来查找选择编译器
  • (7)选择一个变体variant
  • (8)如果这个文件夹是空的(或者没有Makefile文件)
  • (9)编译工程:打开命令选项板(Ctrl+Shift+P)并运行CMake:Build命令,或从状态栏中选择Build按钮

经过前面的学习,对cmake的原理也有一些基本的认识,接下来将学习如何在vscode上利用cmake来创建第一个简单的C++程序吧

下面是一些基本的操作步骤:

(1)前期准备工作:即安装对应的环境

1)在vscode上安装插件:C/C++、Cmake、CMake tools

2)安装Cmake环境(这是在前面博客提到的已经安装好gcc等环境的前提下进行的)

a)Linux环境下:在终端窗口输入cmake,然后查看是否安装了cmake环境,没有安装的则按照提示信息进行安装

b)window环境下:下载链接:https://cmake.org/download/,剩下的网上直接搜如何安装就行

(2)新建一个空的文件夹,然后在vscode中打开

在这里插入图片描述

(3)在vscode中按快捷键(Ctrl+Shift+P)并运行CMake:Quick Start命令

在这里插入图片描述

下面(4)(5)(6)的先后顺序可打乱

(4)根据提示信息输入工程的名称

在这里插入图片描述

(5)然后选择可执行文件(如果您想创建一个基本的源文件和头文件,应该选择Library。如果系统提示您为文件夹配置IntelliSense,选择“允许”)

下面演示选择Executable(可执行文件)作为项目类型,选择了之后将创建一个hello world CMake项目,其中包含main.cpp、CMakeLists.txt和一个名为build的文件夹

在这里插入图片描述

(6)可以按照下图来进行选择,也可以.打开命令选项板(Ctrl+Shift+P)并运行CMake:选择工具包来查找选择编译器

在这里插入图片描述

成功配置之后会显示出

在这里插入图片描述

(7)选择一个变体variant

每个变体对应于默认的构建类型: Debug、Release、MinRelSize和RelWithDebInfo。这些选项执行以下操作:要选择变体,请打开命令选项板(Ctrl+Shift+P)并运行CMake:select variant命令

在这里插入图片描述

(8)如果这个文件夹是空的(或者没有Makefile文件)

在这里插入图片描述

则需要打开命令选项板(Ctrl+Shift+P)并运行CMake:Configure命令来配置您的项目。

在这里插入图片描述

这将使用您选择的kit和变体在项目的生成文件夹中生成build文件

在这里插入图片描述

(9)编译工程:打开命令选项板(Ctrl+Shift+P)并运行CMake:Build命令,或从状态栏中选择Build按钮

在这里插入图片描述

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

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

相关文章

Springboot基础学习之(二十二):异步任务和邮件任务

方向一:高效学习方法分享 我认为学习的最好的办法就是做笔记:本人特别喜欢在网上学习一些课堂外的知识,但是如果你没有及时的复习,要想找到自己想要的知识该怎么办呢?对,就是做笔记我在csdn这个app发的所有内容都是笔记…

Android UI布局优化之include、merge与ViewStub标签的巧用方法

前言 在开发中UI布局是我们都会遇到的问题,随着UI越来越多,布局的重复性、复杂度也会随之增长。 相信大家经常听到include、merge、ViewStub这样的标签,官方也提到这三种布局可用于布局的优化。今天就介绍下这三种布局的使用,记…

SRv6项目实践(一):环境与工具介绍

在一切开始之前,首先介绍一下我们要做什么,做这个要有什么基础,以及实现的环境 1,实验目标与实验基础 我们要在图下图所示的拓扑中,完成在如以下拓扑所示的网络中,配合ONOS实现基本的L2L3转发以及SRv6&am…

港联证券|券商再迎利好!这一比例大幅下调,释放300亿资金

券商利好接二连三。 4月10日,即日起下调证券公司转融通保证金份额。资信优质的公司,保证金份额由20%下调至5%;资信杰出的公司,由20%下调至10%;其余公司由25%下调至15%。中证金融预计,保证金份额下调后&…

Linux系统之tomcat的安装方法

Linux系统之tomcat的安装方法一、tomcat介绍1.tomcat简介2.tomcat官网二、本次环境规划三、安装jdk1.下载jdk包2.安装jdk3.检查jdk版本四、安装tomcat1.下载tomcat2.解压tomcat软件包3.设置环境变量4.查看tomcat版本五、启动tomcat1.启动tomcat服务2.检查tomcat服务状态3.访问t…

原来情感可以这样影响用户体验设计

🔥情绪的基本情况 Emotion:即刻的生理反应, Feeling:物理的或者心理上的,是emotion经过思考后的 Mood:持续时间更长,是一种状态,受到很多因素影响(天气、睡眠&#x…

92-TCP三次握手及TCP四次挥手

TCP三次握手及TCP四次挥手1.tcp三次握手(1)tcp的特点(2)tcp三次握手发生在什么阶段(3)tcp协议报头(4)tcp三次握手的流程2.tcp四次挥手(1)tcp四次挥手发生在什么阶段(2)tcp四次挥手的流程(3)能不能将服务器发端发送的ACK和FIN放在一起发送呢1.tcp三次握手 (1)tcp的特点 TCP 协…

十六、市场活动:查看市场活动明细(二)

功能需求 点击市场活动名称链接,跳转到明细页面,查看市场活动明细 -市场活动的基本信息 -市场活动下所有的备注信息 功能分析 流程图 代码实现 一、ActivityRemarkMapper 1.ActivityRemarkMapper接口 /*** 根据市场活动id查询备注*/List<ActivityRemark> selectActivi…

贪吃蛇小项目

1.总体程序 #include <curses.h> #include <stdlib.h> #include <pthread.h> #include <math.h> #include <time.h> struct Snake //贪吃蛇身子节点 {char node; //节点序号int row; //行坐标int column; //列坐标stru…

探索实践低光照场景下YOLOv5s模型上限,融合CBAM注意力机制开发构建基于改进YOLOv5s的低光照条件下目标检测识别分析系统

在现实生活场景里面&#xff0c;很多场景下光线光照条件都是比较差的&#xff0c;比如夜晚、室内等&#xff0c;这时候以往的目标检测模型是否还能够胜任我们所需的目标检测任务呢&#xff1f;这里主要的想法就是基于地光线条件下的数据集来开发构建目标检测系统&#xff0c;探…

Flowable6.x导出/查看/跟踪流程图(续)

书接上回 项目源码仓库 无论是待办、已办&#xff0c;亦或是流转中、已结束的流程实例&#xff0c;通过使用JS绘制SVG格式的交互式流程图&#xff0c;与以上篇博文中三种方式相比&#xff0c;在效果上都具有明显优势。 运行效果如下图所示&#xff1a; 整合、改造Flowable中…

110.【23种设计模式--创建者模式】

Java 23种设计模式 (一)、设计模式相关内容介绍1.软件设计模式概述(1).软件设计模式的产生背景(2).软件设计模式的概念(3).学习设计模式的重要性(4).设计模式分类 2.UML图(1).类图概述(2).类图的作用(3).类图表示法 3.软件设计原则(1).开闭原则 (重写不修改)(2).里氏代换原则 (…

node的安装与卸载

node的安装与卸载 今天遇到个问题 使用npm命令时报错显示栈溢出&#xff0c;所以将node重装了一下&#xff0c; 一.卸载node&#xff1a; 1.在程序与功能里卸载node.js&#xff0c;然后删除node相关文件夹&#xff0c;此次安装我将node安装在C盘里&#xff0c;将他的全局缓存…

10万字信用大数据一体化监管平台建设方案word

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 1.1、 系统主要功能需求分析 XX公共信用信息管理系统的主要业务流程包括信用信息资源编录管理流程、信用信息归集流程、信用信息服务流程和信用信息异议处理流程。 一.1.1…

NLP作业01:利用HMM实现词性标注

作业头 这个作业属于哪个课程自然语言处理这个作业要求在哪里利用HMM实现词性标注作业要求我在这个课程的目标实现词性标注这个作业在哪个具体方面帮助我实现目标代码实现参考文献1.隐马尔科夫模型 2.基于HMM的词性标注  3.基于HMMViterbi算法的词性标注 Python 文章目录 作…

【LeetCode: 673. 最长递增子序列的个数 | 动态规划】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

LeetCode 热题 HOT 100:从前序与中序遍历序列构造二叉树、二叉树展开为链表、二叉树中的最大路径和

LeetCode 热题 HOT 100 105. 从前序与中序遍历序列构造二叉树 题目&#xff1a; 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c; 请构造二叉树并返回其根节点。 示例 1&#xff1…

webassembly——同源策略问题的处理(浏览器不能加载本地资源的问题)

原因&#xff1a;在用chatGPT生成可视化地图前端文件后&#xff0c;打开不能正常显示 WebAssembly是一种新的二进制代码格式&#xff0c;它可以提供更高的性能和更好的安全性。WebAssembly遵循同源策略&#xff0c;这意味着只有与运行WebAssembly代码相同域名下的JavaScript代码…

Linux --- 常用命令

一、常用命令 1.1、常用命令演示 在这一部分中&#xff0c;我们主要介绍几个常用的命令&#xff0c;让大家快速感受以下Linux指令的操作方式。主要包含 以下几个指令&#xff1a; 1.2、Linux命令使用技巧 在我们使用Linux系统命令时&#xff0c;可以使用以下几个技巧&#x…

丹麦PR electronics信号隔离器3185A1 3185A2安全栅

应用 1:1 标准电流信号隔离&#xff0c;信号范围 0(4)...20 mA。标准 DIN 导轨安装。无论在技术或是成本上&#xff0c;都是电流信号电气隔离的选择。能有效抑制浪涌电流&#xff0c;保护控制系统远离信号噪声和瞬变的影响。消除接地环路和测量浮地信号。安装于安全区域或 Zon…