<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Launch.vs.json on 鹿鸣青野的blog</title><link>https://www.sylgalaxy.xyz/tags/launch.vs.json/</link><description>Recent content in Launch.vs.json on 鹿鸣青野的blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 13 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.sylgalaxy.xyz/tags/launch.vs.json/index.xml" rel="self" type="application/rss+xml"/><item><title>VS2022 打开 CMake 项目的调试说明：断点与 launch.vs.json</title><link>https://www.sylgalaxy.xyz/posts/env-vs-cmake-debug/</link><pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate><guid>https://www.sylgalaxy.xyz/posts/env-vs-cmake-debug/</guid><description>&lt;p&gt;手建的 CMake 项目在 VS2022「打开文件夹」模式下的打开方式、自动生成的配置、断点调试与 &lt;code&gt;launch.vs.json&lt;/code&gt;。核心结论：&lt;strong&gt;CMake 项目的调试体验与向导项目基本一致，唯一多出的一步是手动选启动目标。&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="一怎么用-vs-打开手建的-cmake-项目"&gt;一、怎么用 VS 打开手建的 CMake 项目&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;步骤：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;VS2022 → &lt;strong&gt;文件 → 打开 → 文件夹&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;选项目根目录，比如 &lt;code&gt;&amp;lt;项目根目录&amp;gt;\MyProject&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;VS 自动识别 &lt;code&gt;CMakeLists.txt&lt;/code&gt;，切换到 &lt;strong&gt;CMake 项目模式&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;VS 会自动做的事：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;读 &lt;code&gt;CMakeLists.txt&lt;/code&gt;，配置 CMake。&lt;/li&gt;
&lt;li&gt;在项目根目录生成 &lt;code&gt;.vs/&lt;/code&gt;，存 VS 自己的状态。&lt;/li&gt;
&lt;li&gt;在 &lt;code&gt;out/build/&lt;/code&gt; 下生成构建产物。&lt;/li&gt;
&lt;li&gt;底部状态栏出现 &lt;strong&gt;配置选择器&lt;/strong&gt;（Debug/Release），和 &lt;strong&gt;CMake 目标选择器&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;和向导项目一样，VS 该自动生成的还是会生成。&lt;/p&gt;
&lt;h2 id="二vs-自动生成的配置有哪些"&gt;二、VS 自动生成的配置有哪些&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;和向导项目时一样：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;.vs/&lt;/code&gt;&lt;/strong&gt;：VS 的工作状态、索引、窗口布局。不提交 Git。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;out/&lt;/code&gt;&lt;/strong&gt;：CMake 构建产物。不提交 Git。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;CMakeUserPresets.json&lt;/code&gt;&lt;/strong&gt;：如果在 VS 里改过预设，它可能生成这个。不提交 Git。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;这些不影响项目结构本身&lt;/strong&gt;，只是 VS 的本地缓存，删了能重建。&lt;/p&gt;
&lt;h2 id="三断点怎么用"&gt;三、断点怎么用&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;CMake 项目的断点和向导项目完全一样。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="基本流程"&gt;基本流程&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;在代码行号左边点一下&lt;/strong&gt;，出现红点，就是断点。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;按 F5&lt;/strong&gt; 启动调试（不是 Ctrl+F5，Ctrl+F5 是不调试直接运行）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;程序运行到断点处停下&lt;/strong&gt;，VS 自动切换到调试界面。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;底部出现调试工具栏&lt;/strong&gt;：继续、单步跳过、单步进入、跳出。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;左侧或底部窗口&lt;/strong&gt;：局部变量、监视、调用栈、断点列表。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="常用快捷键"&gt;常用快捷键&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;操作&lt;/th&gt;
&lt;th&gt;快捷键&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;启动调试&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F5&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;停止调试&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift + F5&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;单步跳过（不进入函数）&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F10&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;单步进入（进入函数）&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F11&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;跳出当前函数&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Shift + F11&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;继续运行&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F5&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;切换断点&lt;/td&gt;
&lt;td&gt;&lt;code&gt;F9&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;条件断点&lt;/td&gt;
&lt;td&gt;右键断点 → 条件&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="cmake-项目特有的注意点"&gt;CMake 项目特有的注意点&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1. 启动目标&lt;/strong&gt;&lt;/p&gt;</description></item></channel></rss>