用Visual Studio调试CMake项目并生成Visual Studio工程

news2024/11/27 8:42:22

一. 在Windows系统上安装CMake

访问CMake官方网站https://cmake.org/download,或通过文末链接下载:在下载页面上,找到并点击“Download”链接以获取最新的稳定版本的CMake。请注意,虽然新版本可能包含更多功能和改进,但使用稳定版本通常更为可靠。参考文章2中提到的版本为3.26.0,但您应该选择最新的稳定版本。

图片

下载并安装CMake

下载CMake安装程序:在下载页面上,找到Windows部分的下载链接,并下载CMake的.msi安装程序。

运行安装程序:双击下载的CMake安装程序(.msi文件),启动安装向导。

接受许可协议:在安装向导的欢迎页面,点击“Next”继续安装。然后阅读CMake的许可协议,并选择“我接受许可协议”选项,再次点击“Next”。

验证安装

打开命令提示符(CMD)或PowerShell。

输入“cmake      --version”命令并按下回车键。如果安装成功,将显示CMake的版本信息。

图片

二、将CMake项目转换为Visual      Studio C++解决方案

使用CMake配置项目:

在你的CMakeLists.txt所在的目录下,打开命令行(或终端),然后运行以下命令来生成Visual Studio解决方案和项目文件:

cmake -G "Visual Studio 16 2019"-A x64   # 对于Visual Studio 2019,x64架构 cmake -G "Visual Studio 17 2022"-A x64   # 对于Visual Studio 2022,x64架构  # 注意:'-G' 参数指定了生成器,'-A' 参数指定了目标架构(x86, x64, ARM等)。 # '..' 表示CMakeLists.txt的父目录,这通常是源代码的根目录。

这将生成一个Visual      Studio解决方案文件(.sln)和一系列项目文件(.vcxproj)。

图片

也可以用cMake可视化工具进行生成

图片

三、在Visual      Studio中打开解决方案

打开Visual Studio。  点击 "File" -> "Open" -> "Project/Solution",然后选择刚才生成的.sln文件。  现在你应该可以在Visual Studio中看到你的项目,并可以像平常一样编译和运行它。

(可选)配置CMake设置:

如果你的项目需要特殊的CMake设置(例如定义特定的编译器选项或链接库),你可以在CMakeLists.txt文件中进行配置。然后,重新运行上述的CMake命令来更新Visual Studio解决方案和项目文件。

(可选)使用CMake GUI:

如果你更喜欢使用图形界面来配置CMake项目,你可以使用CMake GUI。这个工具允许你设置源代码目录、构建目录和生成器(在这种情况下是Visual Studio),并可以查看和编辑CMake的缓存和变量。

(可选)使用CMake      Presets:

从CMake 3.19开始,你可以使用CMake Presets来定义多个构建环境配置。这允许你在不同的开发环境中(例如Visual Studio、CLion、GCC等)使用相同的CMakeLists.txt文件。你可以在CMakeLists.txt的同一目录下创建一个名为cmake-presets.json的文件来定义这些配置。然后,你可以使用cmake      --preset命令来生成特定环境的构建文件。

四、在Visual      Studio中直接打开CMake项目并调试

安装CMake和Visual      Studio的CMake工具:

在Visual Studio中,你需要安装CMake工具。这通常可以通过Visual Studio Installer来完成。选择“修改”你的Visual Studio安装,然后在工作负载部分选择“使用C++的桌面开发”,并在右侧窗格中确保“CMake工具”被选中。

打开CMake项目:

  • 在Visual Studio中,选择“文件” > “打开” > “CMake”,然后选择你的CMakeLists.txt文件。

  • Visual Studio会解析CMakeLists.txt文件并生成解决方案和项目文件。

配置CMake设置(如果需要):

  • 在“解决方案资源管理器”中,右键点击CMakeLists.txt文件,然后选择“CMake设置”。

  • 在这里,你可以设置生成器、生成器平台、变量等。

生成项目:

  • 在菜单栏上,选择“生成” > “生成解决方案”或按Ctrl+Shift+B。

  • 这将触发CMake来配置和生成你的项目。

设置调试:

  • 在“解决方案资源管理器”中,找到你想要调试的目标(通常是可执行文件或库)。

  • 右键点击它,然后选择“设为启动项目”。

  • 在菜单栏上,选择“调试” > “开始调试”或按F5来启动调试会话。

附加到进程(如果需要):

  • 如果你的CMake项目生成了一个后台进程或服务器,并且你想要调试它,而不是直接启动它,你可以使用“调试” > “附加到进程”来附加到正在运行的进程。

图片

window版本下载地址:https://www.lanzoub.com/b00rn5c2ri   密码:187d

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

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

相关文章

MATLAB | 怎样绘制这样的环形柱状图

Hey, 各位又是好久不见,最近忙到后台消息都有些来不及看,非常抱歉,今天带来一个环形柱状图绘制的简易小代码,绘制效果如下: 下面直接给出完整代码,替换一下数据即可,代码都有注释的: 完整代码 …

Redis—SortedSet数据类型及其常用命令详解

文章目录 一、Redis概述SortedSet类型1 ZADD:向有序集合添加成员2 ZREM:从有序集合中移除一个或多个成员3 ZSCORE : 获取sorted set中的指定元素的score值4 ZRANK:获取sorted set 中的指定元素的排名5 ZCARD:获取sorted set中的元…

库卡机器人减速机维修齿轮磨损故障

一、KUKA机器人减速器齿轮磨损故障的原因 1. 润滑不足:润滑油不足或质量不佳可能导致齿轮磨损。 2. 负载过重:超过库卡机械臂减速器额定负载可能导致齿轮磨损。 3. 操作不当:未按照说明书操作可能导致KUKA机器人减速器齿轮磨损。 4. 维护不足…

Unity Apple Vision Pro 开发(三):visionOS 应用形态

文章目录 📕教程说明📕常用名词解释📕visionOS 空间类型⭐Shared Space 共享空间⭐Full Space/Immersive Space 独占空间 📕visionOS 渲染框架📕Unity 开发 visionOS 应用的不同模式⭐**窗口模式**⭐VR 模式⭐MR 模式 …

关于edge浏览器注册Kaggle不显示验证部分的问题

使用edge注册kaggle没有显示验证的部分导致无法完成注册 法一 谷歌大法好,使用谷歌注册就么有问题,然鹅需要魔法上网。 法二 使用 edge的Header Editor的插件 收到邮件后填写即可 参考博客: Kaggle平台注册弹不出验证码怎么办&#…

【C++LeetCode】【热题100】最长连续序列【中等】-不同效率的题解【5】

题目&#xff1a; 暴力方法&#xff1a; class Solution { public:int longestConsecutive(vector<int>& nums) {int maxlen1;//定义最长连续序列if(nums.size()<1){//特殊情况的长度 等于序列长度return nums.size();}std::unordered_set<int> uniqu…

内容安全复习 8 - 视觉内容伪造与检测

文章目录 研究背景内容伪造方法虚假人脸生成人脸替换属性编辑表情重演跨模态人脸编辑 伪造检测方法眨眼检测交互式人脸活体检测一些了解方法挑战 研究背景 图像内容篡改造成新闻报道的偏颇易导致社会和公共秩序的不安&#xff0c;对公共安全产生不良影响。 造成的影响&#x…

数据结构经典面试之列表——C#和C++篇

文章目录 1. 数据结构概述2. 列表&#xff08;List&#xff09;的基本概念与操作3. 列表的具体实现方式3.1 数组实现3.2 链表实现 4. 列表在C#和C中的使用示例4.1 C#中的列表使用示例4.2 C中的列表使用示例 5. 总结 数据结构是计算机科学中非常重要的一个领域&#xff0c;它主要…

vue-cli 根据文字生成pdf格式文件 jsPDF

1.安装jspdf npm install jspdf --save 2.下载ttf格式文件 也可以用C:\Windows\Fonts下的字体文件&#xff0c;反正调一个需要的ttf字体文件就行&#xff0c;但有的字体存在部分字体乱码现象 微软雅黑ttf下载地址&#xff1a; FontsMarket.com - Download Microsoft YaHei …

一种基于稀疏学习的旋转机械故障诊断方法(MATLAB)

稀疏表示方法是一种利用最少原子在过完备字典上表示或逼近信号的方法&#xff0c;该方法具有信号表示的高分辨率、稀疏性、强抗干扰能力和自适应性等优点。稀疏表示聚焦于设计合适的稀疏表示字典和挖掘有用的稀疏先验信息&#xff0c;其核心思想是将故障特征信息近似表示为字典…

数据挖掘与分析——数据预处理

数据探索 波士顿房价数据集&#xff1a;卡内基梅隆大学收集&#xff0c;StatLib库&#xff0c;1978年&#xff0c;涵盖了麻省波士顿的506个不同郊区的房屋数据。 一共含有506条数据。每条数据14个字段&#xff0c;包含13个属性&#xff0c;和一个房价的平均值。 数据读取方法…

Ubuntu安装Vins-Fusion(1) —— Ubuntu18.04安装vins-fusion

目录 前言 1、准备1.1 安装ROS1.2 安装 Ceres Solver 2、安装 VINS-Fusion3、测试&#xff08;EuRoC MAV 数据集&#xff09;3.1、下载数据集3.2 Monocualr camera IMU3.3 Stereo cameras IMU3.4 Stereo cameras 参考 前言 VINS-Fusion 是一种基于优化的多传感器状态估计器&…

华为RH2288 V3安装 Linux 系统,安装过程心得

带着U盘&#xff0c;怀着激动的心情进入机房安装操作系统&#xff0c;结果没有显示器和键盘鼠标&#xff0c;傻眼了。 作为过来人&#xff0c;温馨提醒&#xff0c;进入机房前记得先打听&#xff0c;准备好这些&#xff1a;机房房间号、机柜编号、物理机编号、键盘、鼠标、显示…

C#调用OpenCvSharp计算并显示带掩膜的图像直方图

之前的文章简要测试了调用OpenCvSharp的Cv2.CalcHist函数计算直方图的用法&#xff0c;不过使用过程中参数mask的值始终为null&#xff0c;也就是计算的整幅图像的直方图&#xff0c;如果mask不为空&#xff0c;则可以计算图像指定区域的直方图&#xff0c;本文学习掩膜的创建方…

一键部署开源PaaS服务Dokploy,代替Vercel, Netlify 以及 Heroku

前言 Vercel, Netlify 以及 Heroku都是知名的PaaS&#xff08;Platform as a Service|平台即服务&#xff09;服务商&#xff0c;利用这些平台我们可以方便快捷的进行项目部署。尤其是各家生态完善&#xff0c;是很多独立开发者的首选之地。 但是随之而来的就是另外的隐患了&…

如何用Spring使用Redis作为消息订阅?

目录 一、Spring 框架介绍二、Redis 框架介绍三、什么是消息订阅四、如何用Spring使用Redis作为消息订阅 一、Spring 框架介绍 Spring 框架是一个开源的 Java 平台&#xff0c;它提供了全面的基础设施支持&#xff0c;以便您可以更容易地开发 Java 应用程序。Spring 处理了基础…

全局唯一ID生成

全局ID生成器&#xff0c;是一种在分布式系统下用来生成全局唯一ID的工具需满足以下特性&#xff1a; 唯一性、递增性、安全性、高可用、高性能 生成在所有库或表中都满足唯一得ID 实现&#xff1a; 利用Redis的自增功能 INCRBY key increment (INCRBY | Docs)&#xff0c;并在…

mysql 某个时间字段取值时间标识的字符串的值

SELECT STR_TO_DATE(substr(out_trade_no, 1,14), %Y-%m-%d %H:%i:%s) FROM o_order WHERE id 364457; UPDATE o_order SET created_time DATE_FORMAT(STR_TO_DATE(substr(out_trade_no, 1,14), %Y%m%d %H%i%s), %Y-%m-%d %H:%i:%s) WHERE id 364457; 举例&#xff1a; 1…

第9章 EM算法:例题及课后习题

1 概要 1&#xff0e;EM算法是含有隐变量的概率模型极大似然估计或极大后验概率估计的迭代算法。含有隐变量的概率模型的数据表示为 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Z∣θ)。这里&#xff0c; Y Y Y是观测变量的数据&#xff0c; Z Z Z是隐变量的数据&#xff0c; θ \t…