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

cmake + vscode + mingw 开发环境配置

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函数上面打一个断点,然后点击调试按钮,如图: 

 

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

 

相关文章:

cmake + vscode + mingw 开发环境配置

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

nginx 配置代理,根据 不同的请求头进行转发至不同的代理

解决场景:下载发票的版式文件,第三方返回的是url链接地址,但是服务是部署在内网环境,无法访问互联网进行下载。此时需要进行走反向代理出去,如果按照已有套路,就是根据不同的访问前缀,跳转不同的…...

类模板的使用方法

目录 类模板的使用方法 1.类模板语法 2.类模板和函数模板区别 3.类模板中成员函数创建时机 4.类函数对象做函数参数 5.类模板和继承 6.类模板成员函数类外实现 7.类模板分文件编写 person.hpp 实现cpp文件: 8.类模板与友元 9.类模板案例 MyArray.hpp …...

高级Python Web开发:FastAPI的前后端集成与API性能优化

高级Python Web开发:FastAPI的前后端集成与API性能优化 目录 🛠️ 前后端集成的基本原理与实践🚀 FastAPI的API设计与实现📈 API性能测试与负载测试 📊 使用Locust进行API性能测试💥 使用Apache JMeter进…...

期权懂|期权的溢价率和杠杆率有什么区别?

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 期权的溢价率和杠杆率有什么区别? 一、定义篇 期权溢价率:这是一个细腻地描绘了期权价格与其内在价值之间微妙差异的指标。想象一下,期权价格就…...

分布式ID的实现方案

1. 什么是分布式ID ​ 对于低访问量的系统来说,无需对数据库进行分库分表,单库单表完全可以应对,但是随着系统访问量的上升,单表单库的访问压力逐渐增大,这时候就需要采用分库分表的方案,来缓解压力。 ​…...

Py之cv2:cv2(OpenCV,opencv-python)库的简介、安装、使用方法(常见函数、图像基本运算等)

1. OpenCV简介 1.1 OpenCV定义与功能 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库。它为计算机视觉应用程序提供了一个通用的基础设施,并加速了在商业产品中使用机器感知。作为BSD许可的产品&…...

如何学习网络安全?有哪些小窍门?

学好网络安全其实没有所谓的捷径,也没有什么小窍门。 入门网络安全首先要有浓厚的学习兴趣,不然很容易就变成了从入门到放弃了。 其次要能静下心,踏踏实实的打好基础。如果你是零基础,建议从Web安全入手,课程难度相对…...

Dart语言的数据结构

Dart语言中的数据结构探讨 引言 Dart是一种现代化的编程语言,主要用于构建移动应用、Web应用和服务端应用。随着应用程序的复杂性日益增加,选择合适的数据结构显得尤为重要。数据结构不仅影响程序的性能,也影响程序的可维护性和可扩展性。本…...

TabPFN - 表格数据基础模型

文章目录 一、关于 TabPFN🌐TabPFN生态系统 二、快速入门🏁1、安装2、基本用法 三、使用技巧💡四、开发🛠️1、设置环境2、在提交之前3、运行测试 一、关于 TabPFN TabPFN是表格数据的基础模型,它优于传统方法&#x…...

AOF日志:宕机了Redis如何避免数据丢失?

文章目录 AOF 日志是如何实现的?三种写回策略日志文件太大了怎么办?AOF 重写会阻塞吗?小结每课一问 更多redis相关知识 如果有人问你:“你会把 Redis 用在什么业务场景下?”我想你大概率会说:“我会把它当作缓存使用&…...

MAC上安装Octave

1. 当前最新版Octave是9.3版本,需要把mac os系统升级到14版本(本人之前的版本是10版本) https://wiki.octave.org/Octave_for_macOS octave的历史版本参考此文档:Octave for macOS (outdated) - Octavehttps://wiki.octave.org/Oc…...

C 语言中二维数组的退化

目录 1. 一维数组的退化 2.字符串数组的退化 3. 二维数组的退化 3.1 为什么退化为 int (*)[4] 而不是 int **? 3.2举例说明 3.3 .总结 在 C 语言中,数组名在大多数情况下会退化为指向其第一个元素的指针,这种机制称为数组退化&#xf…...

Notion 推出捏脸应用 | Deving Weekly #15

CEF-Detector-X 现在 Chromium 占据了桌面应用的大壁江山,典型的有 Electron 框架,底层就是基于 Chromium 内核,上百 M 的臃肿包体积一直别人诟病。 CEF-Detector-X 可以检测你电脑有多少个 基于 Chromium 应用,并且会生成一份「…...

C# Linq 查询

1.Linq 查询表达式基础 Linq 查询应用程序始终将源数据视为 IEnumerable<T> 或 IQueryable<T> 集合。 LINQ查询表达式包含8个基本子句,分别为from、select、group、where、orderby、join、let和into。 子 句备注from指定数据源和范围变量select指定当执行查询…...

ES7【2016】、ES8【2017】新增特性

ES7【2016】新增特性 幂指数操作符 在ES7【2016】中新增了幂指数操作&#xff0c;幂指数操作符是**。它用于指数计算 基本语法&#xff1a;baseValue ** exponent 参数说明&#xff1a;baseValue是基数&#xff0c;exponent是指数。 let base 2; let exponent 4; let resul…...

64细分步进电机驱动器TMC2209

封装和丝印 典型电路1 典型电路2 应用 兼容设计升级 3D 打印机 打印机、POS 办公和家庭自动化 纺织、缝纫机 闭路电视&#xff0c; 安保 ATM&#xff0c; 现金回收机 暖 通 空调 电池供电设备 特点和优势 2 相步进电机&#xff0c;线圈电流&#xff08;峰值&#xff09;高达…...

C# 获取PDF文档中的字体信息(字体名、大小、颜色、样式等

在设计和出版行业中&#xff0c;字体的选择和使用对最终作品的质量有着重要影响。然而&#xff0c;有时我们可能会遇到包含未知字体的PDF文件&#xff0c;这使得我们无法准确地复制或修改文档。获取PDF中的字体信息可以解决这个问题&#xff0c;让我们能够更好地处理这些文件。…...

linux 安装PrometheusAlert配置钉钉告警

在 Linux 上安装 PrometheusAlert 并配置钉钉告警的步骤如下: 1. 准备工作 钉钉机器人: 在钉钉群中创建一个机器人,获取 Webhook URL。示例 Webhook URL:https://oapi.dingtalk.com/robot/send?access_token=your_dingtalk_token。PrometheusAlert 安装包: 从 Prometheus…...

【华为路由/交换机的ssh远程设置】

华为路由/交换机的ssh远程设置 R1&#xff08;client&#xff09;&#xff1a;10.1.1.1 R2&#xff08;server&#xff09;&#xff1a;10.1.1.2 R2服务端配置&#xff1a; 生成本机密钥 查看生成的密钥 设置AAA授权验证方式&#xff0c;并设置支持SSH协议 创建本地用户&…...

如何用StreamCap实现多平台直播内容的自动捕获与管理

如何用StreamCap实现多平台直播内容的自动捕获与管理 【免费下载链接】StreamCap Multi-Platform Live Stream Automatic Recording Tool | 多平台直播流自动录制客户端 基于FFmpeg 支持监控/定时/转码 项目地址: https://gitcode.com/gh_mirrors/st/StreamCap 在数字…...

从播放卡顿到流媒体优化:深入MP4的stbl盒子,理解视频流畅播放的关键

从播放卡顿到流媒体优化&#xff1a;深入MP4的stbl盒子&#xff0c;理解视频流畅播放的关键 当你在深夜调试一个在线视频播放器&#xff0c;发现用户总是抱怨卡顿和拖拽不准时&#xff0c;是否曾思考过问题可能隐藏在MP4文件最核心的stbl盒子中&#xff1f;作为流媒体开发者&am…...

如何用Reset Windows Update Tool一键解决Windows更新故障的终极指南

如何用Reset Windows Update Tool一键解决Windows更新故障的终极指南 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool 你是否曾…...

暗黑3按键助手:一键解放双手的终极游戏伴侣 [特殊字符]

暗黑3按键助手&#xff1a;一键解放双手的终极游戏伴侣 &#x1f3ae; 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面&#xff0c;可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 还在为暗黑3中复杂的技能连招和…...

丹青识画GPU算力优化部署教程:显存占用降低40%实操

丹青识画GPU算力优化部署教程&#xff1a;显存占用降低40%实操 1. 引言&#xff1a;当艺术邂逅算力&#xff0c;如何优雅地“瘦身”&#xff1f; 想象一下&#xff0c;你刚部署好一个能看懂画作、还能用书法题诗的AI应用——“丹青识画”。它融合了前沿的多模态AI与东方美学&…...

Anything to RealCharacters效果评测:与Stable Diffusion ControlNet写实方案对比

Anything to RealCharacters效果评测&#xff1a;与Stable Diffusion ControlNet写实方案对比 1. 项目概述 Anything to RealCharacters是一款专为RTX 4090显卡优化的2.5D转真人图像转换系统。这个工具基于通义千问Qwen-Image-Edit-2511图像编辑底座&#xff0c;集成了专门的…...

Starry Night Art Gallery效果展示:黄金渐变按钮交互+实时生成反馈

Starry Night Art Gallery效果展示&#xff1a;黄金渐变按钮交互实时生成反馈 1. 沉浸式艺术体验&#xff1a;当AI遇见文艺复兴 想象一下&#xff0c;你走进的不是一个冰冷的AI工具界面&#xff0c;而是一座数字艺术殿堂。四周是深邃的墨蓝色背景&#xff0c;如同梵高笔下的夜…...

Windows下PyTorch CPU版安装全攻略:从下载到验证(含conda常用命令)

Windows平台PyTorch CPU版高效安装指南&#xff1a;从零基础到环境验证 在深度学习领域&#xff0c;PyTorch已成为最受欢迎的框架之一。对于Windows用户而言&#xff0c;特别是刚接触机器学习的新手&#xff0c;正确安装PyTorch是迈入这一领域的第一步。本文将详细介绍如何在Wi…...

Cursor Composer 2 技术报告拆解:MoE 预训练、RL 环境设计与 CursorBench 基准的工程实践

在生产级代码仓库里&#xff0c;一个 AI Agent 面对的往往不是“实现某个功能”这样清晰的任务&#xff0c;而是“新特性上线后出现诡异 bug&#xff0c;日志里只有 954 个 JSON 响应&#xff0c;栈踪迹完全不可靠”。它必须自己跨文件定位、写启发式检测器、调参避免误报&…...

用ESP32和TB6612FNG做个遥控小车:从硬件接线到Arduino代码调试全记录

从零打造ESP32智能遥控小车&#xff1a;硬件选型、代码优化与避坑指南 项目背景与核心组件解析 去年夏天&#xff0c;我在工作室里堆满了各种电机和开发板&#xff0c;试图为侄子制作一个生日礼物——能通过手机控制的遥控小车。经过多次迭代&#xff0c;最终选择了ESP32TB6612…...