cmake + vscode + mingw 开发环境配置

server/2025/1/19 5:02:26/

1.软件准备

准备如下软件:
mingw64(安装完成之后检测是否有环境变量,如果没有需要配置)
cmake(安装完成之后检测是否有环境变量,如果没有需要配置)
vscode(安装CMake插件)

2.创建项目

创建一个test目录作为项目的根目录,并在test目录中创建一个CMakeLists.txt文件,文件内容如下:

cmake_minimum_required(VERSION 3.14)
project(test)
set(CMAKE_CXX_STANDARD 14)
#设置程序生成的DEBUGrelase目录
set(PROGRAM_PATH_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}build/debug)
set(PROGRAM_PATH_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}build/release)
# 引入子目录
ADD_SUBDIRECTORY(main)

然后再创建一个main目录,在main目录中创建一个CMakeLists.txt文件,内容如下:

set_target_properties(${TARGET_NAME} PROPERTIES DEBUG_POSTFIX "_d")
#设置可执行程序的输出目录
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../build/debug)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../build/release)
file(GLOB main_src  ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/*.h)
ADD_EXECUTABLE(main ${main_src})
IF (CMAKE_BUILD_TYPE MATCHES "Debug"OR CMAKE_BUILD_TYPE MATCHES "None")MESSAGE(STATUS "CMAKE_BUILD_TYPE is Debug")set_target_properties(main PROPERTIES OUTPUT_NAME "main_debug")
ELSEIF (CMAKE_BUILD_TYPE MATCHES "Release")MESSAGE(STATUS "CMAKE_BUILD_TYPE is Release")set_target_properties(main PROPERTIES OUTPUT_NAME "main_release")
ELSEIF (CMAKE_BUILD_TYPE MATCHES "RelWitchDebInfo")MESSAGE(STATUS "CMAKE_BUILD_TYPE is RelWitchDebInfo")
ELSEIF (CMAKE_BUILD_TYPE MATCHES "MinSizeRel")MESSAGE(STATUS "CMAKE_BUILD_TYPE is MinSizeRel")
ELSE ()MESSAGE(STATUS "unknown CMAKE_BUILD_TYPE = " ${CMAKE_BUILD_TYPE})
ENDIF ()

然后再创建一个main.cpp文件,内容如下: 

 

int main()
{return 0;
}

目录结构如下:
test/

├──CMakeLists.txt
├──main/
│ ├──── CMakeLists.txt
│ ├──── main.cpp 

3.编译项目 

使用vscode打开test目录,如图: 

 

然后点击CMake插件,选择调试工具包,如图: 

 

 

这里我们选择GCC 8.10xxxx,也就是之前装的mingw64

配置完成之后,如图:

 

这里配置的是Debug,如果要切换release模式,编辑配置下面的Debug,如图: 

 

然后切换release,如图: 

 编译程序,点击编译图标,如图:

 

然后就会生成exe到指定的目录,如图: 

 编译的文件在项目根路径下面的build目录下,也就是在CMakeLists.txt配置的:

set(PROGRAM_PATH_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}build/debug)
set(PROGRAM_PATH_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}build/release)

4.调试 

在main函数上面打一个断点,然后点击调试按钮,如图: 

 

然后代码就会走到断点的位置处,如图: 

 


http://www.ppmy.cn/server/159545.html

相关文章

深度剖析RabbitMQ:从基础组件到管理页面详解

文章目录 一、简介二、Overview2.1 Overview->Totals2.2 Overview->Nodesbroker的属性2.3 Overview->Churn statistics2.4 Overview->Ports and contexts2.5 Overview->Export definitions2.6 Overview->Import definitions 三、Connections连接的属性 四、C…

如何在亚马逊云科技上消除无服务器网页应用冷启动时间(下篇)

背景 我们在云端搭建无服务器(serverless)开发架构时,经常会被冷启动(cold start)带来的应用延迟所困扰。冷启动是指当无服务器资源在一段时间内未被调用,或需要扩展以处理新请求时,系统需要初…

阀井可燃气体监测仪,开启地下管网安全新篇章-旭华智能

在城市的脉络中,地下管网犹如隐秘的动脉,支撑着现代生活的运转。而在这庞大网络的关键节点上,阀井扮演着不可或缺的角色。然而,由于其密闭性和复杂性,阀井内部一旦发生可燃气体泄漏,将对公共安全构成严重威…

C 语言的void*到底是什么?

一、void* 的类型任意性 void* 是一种通用指针类型。它可以指向任意类型的数据。例如,它可以指向一个整数(int)、一个浮点数(float)、一个字符(char)或者一个结构体等。在C语言中,当…

求两个矩阵的乘积

求两个矩阵的乘积 分数 15 全屏浏览 切换布局 作者 C课程组-hwr-zy 单位 浙江大学 输入三个正整数m&#xff0c;l&#xff0c;n(0<m&#xff0c;n&#xff0c;l<10)&#xff0c;再输入两个的矩阵a&#xff08;mxl&#xff09;和b&#xff08;lxn&#xff09;。要求把a和…

CES 2025:XEO 展出双眼8K VR头显,售价2000美元

在2025年国际消费类电子产品展览会(CES)上,XEO公司凭借其最新的VR头显设备吸引了众多目光。这款标榜双眼8K分辨率的高端VR头显不仅展示了当前虚拟现实技术的顶尖水平,同时也设定了新的行业标杆。本文将详细介绍这款产品的特点、技术和市场定位。 XEO 双眼8K VR头显:极致视…

新型智慧园区解决方案:AI赋能场景,核心架构全解析

新型智慧园区解决方案通过集成物联网、大数据、云计算等前沿技术&#xff0c;并结合AI的深度应用&#xff0c;为园区的管理、运营和服务带来了前所未有的变革。 一、AI赋能智慧园区的应用场景 1、智能安防监控 AI技术使园区监控系统具备了超乎寻常的洞察力。通过高精度的物体…

idea创建SpringBoot自动创建Lombok无效果(解决)

问题&#xff1a;可以正常引用&#xff0c;而且也有提示&#xff0c;但是就是没有效果出来 首先按照网上的教程设置了这个地方发现还是没用&#xff0c;而且之前手动引入依赖都不用的&#xff0c;但是设置总之没错 最后发现&#xff1a;是POM.xml自动生成的配置文件的时候&…