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

VS Code:CMake配置

概述

在VSCode和编译器MinGW安装完毕后,要更高效率的进行C/C++开发,采用CMake。CMake是一个开源、跨平台的编译、测试和打包工具,它使用比较简单的语言描述编译,安装的过程,输出Makefile或者project文件,再去执行构建。

安装

在官网下载CMake,直接点击安装包,设置安装路径进行安装即可,安装时,需要勾选设置环境变量。
在VSCode中安装插件CMake、CMake Integration和CMake Tools.
Pasted image 20230106221355
Pasted image 20230106221458

开发和编译
1.功能说明

在各个子文件目录下创建CMakeLists.txt文件。首先Ctrl+Shift+P打开快捷输入窗,使用CMake Config配置后,选择已经安装好的MinGW编译器进行编译;使用CMake Build自动生成外部构建的build文件夹;使用CMake Debug进行程序代码调试。

2.工程配置

1.新建一个项目文件夹,用VSCode打开
2.在文件夹下新建include文件夹和src文件夹,include下存放头文件,src下存放源文件
3.在根目录下新建CMakeList.txt文件。
Pasted image 20230106222831
使用之前写过的代码进行演示,文件目录为:
Pasted image 20230106224112
client.h文件如下:

#include<iostream>
using namespace std;
class client
{
private:static char SeverName;static int ClientNum;
public:client();static void ChangeSeverName(char name);static char getServerName();static int getClientNum();~client();
};

client.cpp文件如下:

#include "client.h"
#include<iostream>
using namespace std;
char client::SeverName = 'A';
int client::ClientNum = 0;
client::client()
{ClientNum++;
}
client::~client(){ClientNum--;
}
void client::ChangeSeverName(char name){SeverName = name;
}
char client::getServerName(){return SeverName;
}
int client::getClientNum(){return ClientNum;
}

main.cpp文件如下:

#include "client.h"
#include<iostream>
using namespace std;
int main(){client c1;client c2;char name1;char name2;cout<<"请输入一个字符作为客户机的名称:";cin>>name1;cout<<"客户机名称为"<<name1<<endl;cout<<"请输入一个字符作为客户机的名称:";cin>>name2;cout<<"请输入一个字符作为客户机的名称:"<<name2<<endl;cout<<"客户机"<<name1<<"的服务器为"<<c1.getServerName()<<endl;cout<<"客户机"<<name2<<"的服务器为"<<c2.getServerName()<<endl;char new_server_name;cout<<"请输入新的服务器名称:";cin>>new_server_name;c1.ChangeSeverName(new_server_name);cout<<"客户机"<<name1<<"的服务器为"<<c1.getServerName()<<endl;cout<<"客户机"<<name2<<"的服务器为"<<c2.getServerName()<<endl;cout<<"可会数量为"<<c1.getClientNum()<<endl;
}

CMakeLists.txt文件为:

project(test)
include_directories(${PROJECT_SOURCE_DIR}/include)#添加头文件的搜索路径
aux_source_directory(./src SrcFiles)#将源文件列表写在变量SrcFiles中
aux_source_directory(./src/test SrcFiles)#工程项目较大,要创建多个模块
set(EXECUTABLE_OUTPUT_PATH  ${PROJECT_SOURCE_DIR}/build)#设置可执行文件输出路径
add_executable(main ${SrcFiles})#设置可执行文件的名称,make之后bin目录下出现main.exe

写好CMakeLists.txt文件后,首先使用Ctrl+Shift+P打开快捷输入栏,选择CMake:Configure选项,如下图:
Pasted image 20230106223903
之后在选择编译器,这里选择已经配置好的MinGW编译器,如下图:
Pasted image 20230106223952
会自动生成build文件夹:
Pasted image 20230106230651
VSCode出现运行按钮,点击运行,即可在终端查看运行结果。
Pasted image 20230106230848
Pasted image 20230106233056

3.程序的调试

安装好VSCode中的C/C++、CMake和CMake Tools插件。
Pasted image 20230107000545
点击左侧栏的CMake工具栏,右键可执行文件,选择Debug。
Pasted image 20230107001123
进入调试界面。

http://www.lryc.cn/news/192537.html

相关文章:

  • Flex 词法分析实验实现(电子科技大学编译技术Icoding实验)
  • 设计模式——20. 解释器模式
  • 多输入多输出 | MATLAB实现CNN-BiLSTM-Attention卷积神经网络-双向长短期记忆网络结合SE注意力机制的多输入多输出预测
  • 一文让你玩转Linux多进程开发
  • Linux线程同步实例
  • LuatOS-SOC接口文档(air780E)-- iconv - iconv操作
  • matlab第三方硬件支持包下载和安装
  • docker compose和consul(服务注册与发现)
  • 使用Python进行钻石价格分析
  • Java日期查询
  • uniapp 运行到 app 报错 Cannot read property ‘nodeName‘ of null
  • Mac M1通过homebrew安装Redis报错(perl: unknown or unsupported macOS version: :dunno)
  • 如何在 Spring Boot 中进行分布式追踪
  • Lniux三剑客——Grep
  • 选实验室超声波清洗机易忽视的内容?小型清洗机的优点有?
  • 基于Java使用SpringBoot+Vue框架实现的前后端分离的美食分享平台
  • 开源数据库MySQL 8.0 OCP认证精讲视频、环境和题库 之二
  • AI对网络安全的影响与挑战
  • 微信小程序备案流程操作详解,值得收藏
  • 【NLTK系列01】:nltk库介绍
  • 人机环境系统智能有利于防止人工智能失控
  • 用于多目标检测的自监督学习(SELF-SUPER VISED LEARNING FOR MULTIPLE OBJECTDETECTION)
  • HDLbits: ps2data
  • SpringCloudAlibaba SpringCloud SpringBoot 版本对照
  • Swift基础
  • 基于php+thinkphp+vue的校园二手交易网站
  • SystemVerilog Assertions应用指南 第一章(1.25章节 “first_match”运算符)
  • python和go执行字符串表达式
  • Python算法练习 10.14
  • 云上攻防-云原生篇Docker安全系统内核版本漏洞CDK自动利用容器逃逸