编程既是门艺术,也是项高度技术性的工作,众所周知,这绝非易事。因此,我们应当尽可能优化这一过程。虽然能通过简单切换就获得更好结果的情况并不多见,但使用集成开发环境 (IDE)绝对是这类罕见情形之一。
若您未曾使用过专业 IDE(或认为 Emacs/Vim 这类文本处理器已是最好选择),本章正为您而写。若您是经验丰富的专业人士,可将本章作为当前主流工具的快速概览,或许会考虑更换工具,亦或更坚定地确认现有工具仍是最佳选择。
本章着重为刚入门的开发者提供易理解的指导,温和地介绍选择集成开发环境(IDE)这一关键决策。我们将探讨为何需要 IDE 以及如何选择最适合自身需求的工具。诚然,市场上有众多选择,但一如既往,某些方案确实更胜一筹。遗憾的是,这并非放之四海皆准的通用方案。正确选择将直接影响您的生产力水平,这其中涉及诸多因素。我们将讨论在特定规模组织中工作时可能需要重点考虑的要素,确保您既能领会精妙之处,又不会陷入复杂性的泥沼。随后将快速介绍工具链概念,并探讨现有的可选方案。
接下来我们将重点介绍几款流行 IDE 的独特品质,比如功能强大的 CLion、灵活多变的 Visual Studio Code,以及堪称开发利器的 Visual Studio IDE。每个章节都精心设计,旨在展示这些开发环境的优势与高级功能,帮助您了解如何迈出使用该 IDE 的第一步。此外,我们还会从众多功能中主观挑选一个高级特性进行重点介绍,让您对使用该套件能获得怎样的体验有个初步概念。
本章将涵盖以下主要内容:
认识 IDE
从 CLion IDE 开始
从 Visual Studio Code 开始
从 Visual Studio IDE 开始
认识集成开发环境
本节我们将探讨集成开发环境(IDE)及其如何显著提升开发速度和代码质量。首先为初次接触此概念的读者解释什么是 IDE。
为何以及如何选择 IDE?集成开发环境(IDE)是一种综合性工具,它整合了多种专用工具来简化软件开发流程。创建专业项目的全过程包含诸多环节:设计、编码、构建、测试、打包、发布和维护。每个环节又由许多细粒度任务组成,其复杂性可能令人望而生畏。IDE 通过提供一个由开发者精心配置的工具集平台来解决这个问题,这种集成性让您无需为每个项目单独配置就能无缝使用这些工具。
集成开发环境(IDE)主要围绕代码编辑器、编译器和调试器构建,旨在提供高度集成的开发体验,使开发者能够编辑代码后立即编译,并通过附加调试器运行程序。IDE 可能内置构建工具链,或允许开发者选择偏好的编译器与调试器。编辑器通常是其核心组件,但可通过插件大幅扩展功能,如代码高亮、格式化等。
更先进的 IDE 提供诸如热重载调试(Visual Studio 2022 已支持,后文将详细介绍)等复杂功能。该特性允许在调试状态下运行代码时进行编辑,并无需重启程序即可继续执行。IDE 还包含重构工具(如重命名符号或提取代码为独立函数)及静态分析功能(可在编译前识别错误)。此外,IDE 集成 Git 等版本控制系统工具,在解决代码冲突等场景中具有不可替代的价值。
现在你肯定能明白,尽早学习使用集成开发环境(IDE)并在组织中推行标准化使用会带来多大好处。接下来我们探讨为何选择适合自己的 IDE 至关重要。
选择 IDE
目前有许多代码编辑器即将被开发者社区认可为功能完备的 IDE。鉴于当前软件发布周期之快和领域变化之迅速,建议在确定具体选择前先做些调研。
根据我多年企业经验,很少有 IDE 能提供足够吸引人的功能让人放弃原有开发环境。对开发者而言,使用习惯几乎是第二天性,这点不容忽视。请记住,当你熟悉某个 IDE 后,它很可能成为你未来长期的主力工具。这就是为什么至今仍能看到开发者使用 Vim(1991 年发布的命令行文本编辑器),通过大量插件扩展使其功能媲美现代图形界面 IDE。所以不必有压力。
程序员选择某个集成开发环境(IDE)的原因多种多样,其中一些因素确实至关重要(如速度、可靠性、功能全面性、完整性),而其他因素则不然。我想分享我对这一选择的主观看法,希望对你也有所帮助。
选择功能全面的 IDE
如果你是编程新手,可能会考虑使用简单的文本编辑器,再通过运行几条命令来构建代码。这种方式绝对可行,尤其当你试图理解基础知识时(我鼓励你在学习本书过程中使用实际命令来跟踪进度)。这也能帮助你体会没有 IDE 时初学者的感受。
另一方面,集成开发环境(IDE)的创建有其特定目的。它们能简化开发者在项目生命周期中处理的众多流程,这极具价值。虽然初看可能令人望而生畏,但应选择一款功能全面的 IDE,包含所有必要特性。确保其尽可能完整,同时需注意成本问题,因为 IDE 对于小型企业或个人开发者可能价格不菲。这实际上是在手动管理所耗时间与 IDE 提供的功能成本之间寻求平衡。
无论成本如何,都应选择具有强大社区支持的 IDE,以便在遇到问题时获得帮助。探索社区论坛和热门问答网站如 StackOverflow.com,查看用户问题是否得到解答。此外,选择由知名公司积极维护的 IDE,避免将时间浪费在长期未更新、可能很快被淘汰或弃用的产品上。例如不久前,GitHub 开发的 Atom 编辑器在发布 7 年后就停止了维护。
选择在您所在组织内获得广泛支持的 IDE
与直觉相反,这可能并不符合每位开发者的偏好。你可能已经习惯了大学时期、前一份工作或个人项目中使用的其他工具。正如前文所述,这种习惯会诱使你忽视公司的推荐而固守熟悉的工具。请抵制这种冲动。随着时间的推移,这种选择会变得越来越困难。根据我在爱立信、亚马逊和思科的经验,只有一次配置和维护非标准 IDE 的投入被证明是值得的——那是因为我争取到了足够的组织支持来共同解决问题。
你的首要目标是编写代码,而非在不受支持的 IDE 中挣扎。学习推荐软件可能需要付出努力,但这比逆势而为的代价要小(是的,Vim 输掉了这场战役,是时候向前看了)。
不要根据目标操作系统和平台来选择 IDE
你可能会认为,如果为 Linux 开发软件,就必须使用 Linux 机器和基于 Linux 的集成开发环境。然而,C++是一种可移植的语言,这意味着只要编写正确,它应该能在任何平台上以相同方式编译和运行。当然,你可能会遇到库相关的问题,因为并非所有库都默认安装,有些可能特定于你的平台。
严格遵循目标平台并非总是必要,有时甚至适得其反。例如,如果你的目标操作系统是较旧版本或长期支持版 (LTS),可能无法使用最新的工具链版本。如果你想在不同于目标的平台上进行开发,完全可以实现。
既然如此,可以考虑交叉编译或远程开发 。交叉编译需要使用专门的工具链,使得在某个平台(如 Windows)上运行的编译器能为另一个平台(如 Linux)生成产物。这种方法在业界广泛使用,且 CMake 也支持该方式。或者,我推荐采用远程开发方式,即将代码发送至目标机器,使用本地工具链进行构建。许多 IDE 都支持这种方法,并具有多项优势,我们将在下一节详细探讨。
选择支持远程开发的 IDE
虽然这不应作为首要标准,但在满足其他要求后,考虑 IDE 的远程开发支持是有益的。随着时间的推移,即便是经验丰富的开发者也会遇到因团队、项目或公司变动而需要针对不同目标平台开发的情况。
若您偏好的集成开发环境(IDE)支持远程开发,您可继续使用它,借助其在不同操作系统上编译调试代码并通过 IDE 图形界面查看结果的能力。相比交叉编译,远程开发的主要优势在于集成的调试器支持,提供了更简洁的流程而无需 CMake 项目级配置。此外,企业通常提供性能强劲的远程机器,使开发者能够使用成本更低、更轻量的本地设备。
诚然,有观点认为交叉编译能提供对开发环境的更强控制,便于临时修改进行测试。它无需代码传输的带宽,支持低端网络连接或离线工作。但考虑到多数软件开发需要联网获取信息,这一优势可能并不关键。使用 Docker 等虚拟化环境可运行本地生产副本并建立远程开发连接,兼具安全性、可定制性以及构建部署容器的能力。
这里提到的考量稍偏向于在大型企业工作的情况,这类环境变化较慢,且难以实现高度影响力的变革。这些建议并不否定您根据实际需求优先考虑 IDE 其他方面时,仍能获得 CMake 完整体验的可能性。
安装工具链
如前所述,集成开发环境(IDE)整合了所有必要工具以简化软件开发流程。其中关键环节是构建二进制文件——有时在后台或即时完成——以便为开发者提供额外信息。工具链是编译器、链接器、归档工具、优化器、调试器以及标准 C++库实现等工具的集合,还可能包含 bash 、 make 、 gawk 、 grep 等用于构建程序的实用工具。
部分集成开发环境(IDE)自带工具链或工具链下载器,而有些则没有。最佳做法是直接运行已安装的 IDE,检查是否能编译基础测试程序。CMake 通常在配置阶段默认执行此操作,大多数 IDE 在初始化新项目时会自动完成这一步骤。如果此过程失败,IDE 或操作系统的包管理器可能会提示您安装必要工具。只需按照指引操作即可,这类流程通常都经过完善设计。
若未收到提示,或您希望使用特定工具链,以下是根据不同平台提供的选项:
GNU GCC(GCC, the GNU Compiler Collection- GNU Project)适用于 Linux、Windows(通过 MinGW 或 Cygwin)、macOS 等多种平台。GCC 是最流行且广泛使用的 C++编译器之一,支持众多平台和架构。
Clang/LLVM(Clang C Language Family Frontend for LLVM)支持 Linux、Windows、macOS 等多种平台。Clang 是 C、C++和 Objective-C 编程语言的编译器前端,采用 LLVM 作为其后端。
Microsoft Visual Studio/MSVC(Visual Studio: IDE and Code Editor for Software Developers and Teams)主要面向 Windows 平台,同时通过 Visual Studio Code 和 CMake 提供跨平台支持。MSVC 是微软提供的 C++编译器,通常与 Visual Studio 集成开发环境配合使用。
MinGW-w64 (mingw-w64) 适用于 Windows 系统。MinGW-w64 是原 MinGW 项目的升级版,旨在为 64 位 Windows 和新 API 提供更好的支持。
Apple Clang (C++ Language Support – Xcode – Apple Developer) 适用于 macOS、iOS、iPadOS、watchOS 和 tvOS。苹果公司优化的 Clang 版本专为苹果硬件和软件生态系统设计,已集成在 Xcode 中。
Cygwin (Cygwin) 适用于 Windows 系统。Cygwin 在 Windows 上提供了兼容 POSIX 的环境,支持使用 GCC 及其他 GNU 工具。
如果你想快速上手而不深入探究每个工具链的具体细节,可以遵循我的个人偏好:如果 IDE 没有提供工具链,在 Windows 上选择 MinGW,Linux 上使用 Clang/LLVM,macOS 则选用 Apple Clang。这些工具链各自在其主要平台上表现优异,通常能提供最佳的使用体验。
当然,在探讨集成开发环境(IDE)这一主题时,一个问题随之而来:我们该如何在当前展示的所有 IDE 中使用这个代码库?需要明确的是,这本教你创建专业项目的教程书籍本身并非专业项目。它是由多个完成度各异的项目组成的合集,在可能之处进行了合理简化。遗憾的是(抑或值得庆幸?),IDE 的设计初衷并非为了同时加载数十个项目并便捷管理。它们的功能通常聚焦于加载并编辑单个活跃项目。
这让我们处于一个有些尴尬的境地:使用 IDE 来导航这个示例集确实非常困难。当用 IDE 加载示例集时,通过选择示例目录打开后,大多数 IDE 会检测到多个 CMakeLists.txt 文件并要求你选择其中一个。选择之后,会进行常规的初始化过程,写入临时文件,本质上会运行 CMake 配置和生成阶段,使项目进入可构建状态。正如你可能猜到的,这仅适用于所选 CMakeLists.txt 文件对应的示例。虽然大多数 IDE 确实提供了在工作区切换不同目录(或项目)的方式,但操作可能不如我们希望的那么直观。
如果你对此感到困扰,有两种选择:要么不使用 IDE 构建示例(改用控制台命令),要么每次都把示例加载到新项目中。如果你想重点练习命令操作,我推荐第一种方式,因为这些命令将来可能派上用场,并能让你更清晰地了解幕后运行机制。对于构建工程师而言这通常是个不错的选择,因为这类知识会频繁用到。另一方面,如果你主要作为开发者专注于项目业务逻辑开发,可能早期就开始使用 IDE 更为合适。无论如何,选择其中一种方式并不妨碍你偶尔尝试另一种途径。
既然这个问题已经解决,让我们集中精力回顾当今最优秀的集成开发环境(IDE),看看哪一款最适合您。无论您是否在企业工作,这些 IDE 都能很好地满足您的需求。
从 CLion IDE 开始
CLion 是一款付费的跨平台集成开发环境(IDE),适用于 Windows、macOS 和 Linux 系统,由 JetBrains 公司开发。没错——这款软件采用订阅制;从 99 美元起(2024 年初价格),您可以获得个人使用的一年期授权许可。大型组织需支付更高费用,而初创企业则可享受优惠。如果您是学生或发布开源项目,还能申请免费许可证。此外,该软件提供 30 天试用期供用户体验。这是本列表中唯一不提供免费”社区版”或功能精简版本的 IDE。尽管如此,这款由知名公司开发的软件品质过硬,很可能物有所值。
图 3.1 展示了该 IDE 在浅色模式下的界面外观(深色模式为默认选项):

如您所见,这是一款功能完备的集成开发环境,能够从容应对各种开发需求。下面让我们探讨它的卓越之处。
您可能青睐它的理由
与其他替代方案不同,CLion 将 C 和 C++作为首要且唯一支持的语言。该 IDE 的诸多功能专为支持这一开发生态而设计,完全契合 C/C++的思维方式。当我们对比其他 IDE 的功能时这点尤为明显:虽然代码分析、代码导航、集成调试器和重构工具等功能在 Visual Studio 等竞品中也能找到,但它们对 C/C++的支持深度和健壮性远不及 CLion。当然,这种优势很难用客观标准来衡量。
值得一提的是,CLion 开箱即用集成了 CMake,并将其作为项目格式的首选方案。虽然 Autotools 和 Makefile 项目尚处于早期支持阶段,但可用于逐步迁移至 CMake。特别值得注意的是,CLion 原生支持 CMake 的 CTest 功能,兼容多种单元测试框架,并提供专用流程来生成代码、运行测试以及收集展示结果。您可以使用 Google Test、Catch、Boost.Test 和 doctest 等测试框架。
我特别喜欢的一个功能是能够与 Docker 配合,在容器中开发 C++程序——这一点稍后会详细介绍。现在,我们先来看看如何开始使用 CLion。
迈出第一步
从官方网站(CLion: A Cross-Platform IDE for C and C++ by JetBrains)下载 CLion 后,您可以按照常规流程在所用平台上进行安装。CLion 在 Windows( 图 3.2)和 macOS( 图 3.3)上都提供了直观的可视化安装程序。


在 Linux 系统上,您需要解压下载的压缩包并运行安装脚本:
tar -xzf CLion-<version>.tar.gz
./CLion-<version>/bin/CLion.sh
这些说明可能已过时,请务必在 CLion 官网上确认最新信息。
首次运行时,系统会要求您提供许可证代码或开始 30 天免费试用。选择第二个选项可让您试用该 IDE,判断是否适合您的需求。接下来,您可以创建新项目并选择目标 C++版本。随后,CLion 将自动检测可用的编译器和 CMake 版本,并尝试构建测试项目以确认所有设置正确。在某些平台(如 macOS)上,可能会自动提示您根据需要安装开发者工具。在其他平台上,您可能需要自行设置这些工具,并确保它们已添加到 PATH 环境变量中。
接下来,请确保您的工具链已根据需求完成配置。工具链是按项目进行配置的,因此请先创建一个默认的 CMake 项目。然后,进入设置 / 偏好 (Ctrl/Command+Alt+S)并选择构建、执行、部署 > CMake。在此选项卡中,您可以配置构建配置文件( 图 3.3)。添加一个 Release 配置文件来构建不含调试符号的优化产物可能会很有用。要添加配置文件,只需点击配置文件列表上方的加号图标。CLion 将为您创建一个默认的 Release 配置文件。您可以通过主窗口顶部的下拉菜单切换不同配置文件。
现在,您只需按下 F9 键即可编译并运行附带调试器的程序。接下来请阅读 CLion 的官方文档,其中有许多实用功能值得探索。我想向您介绍我最喜欢的功能之一:调试器。
高级功能:强力调试器
CLion 的调试功能确实处于前沿水平,专为 C++量身打造。最新加入的 CMake 调试功能尤其令我欣喜,它包含诸多标准调试特性:代码单步执行、断点设置、监视窗口、内联值查看等。当程序运行不如预期时,能够查看不同作用域(缓存作用域、 ENV 作用域及当前作用域)的变量这一功能显得极为便利。
在 C++调试方面,您将获得 GNU 项目调试器 (GDB)提供的诸多标准功能,如汇编视图、断点、单步执行、监视点等,同时还包含一些重大增强功能。CLion 中提供了并行堆栈视图,能以图形化方式展示所有线程及其当前堆栈帧。高级内存视图功能可查看运行程序在 RAM 中的布局并实时修改内存。CLion 还提供寄存器视图、代码反汇编、调试器控制台、核心转储调试、任意可执行文件调试等多种工具帮助理解程序运行状态。
最重要的是,CLion 的表达式求值功能设计精良,效果出众,甚至支持在程序执行期间修改对象。只需右键点击代码行并从菜单中选择该功能即可使用。
关于 CLion 就介绍到这里,接下来让我们看看另一款 IDE。
从 Visual Studio Code 开始
Visual Studio Code(VS Code)是由微软开发的免费跨平台集成开发环境,支持 Windows、macOS 和 Linux 系统。请注意不要将其与微软的另一款产品 Visual Studio IDE 混淆(后者通常以发布年份命名,例如 Visual Studio 2022)。
VS Code 因其庞大的扩展生态系统和对数百种编程语言的支持而备受青睐(据估计支持超过 220 种不同语言!)。当 GitHub 被微软收购后,VS Code 在某种程度上成为了 Atom 编辑器的替代品。
如图 3.4 所示,该集成开发环境的整体设计堪称一流。

现在,让我们来探索 VS Code 的独特之处。
您可能青睐它的理由
C++虽非 VSC 支持语言中的首要选项,但由于众多精良的语言扩展插件,其支持度已相当接近顶级。这种权衡换来了在同一环境中根据需求自由切换多种语言的能力。
该工具存在一定的学习曲线,因为大多数扩展遵循基础 UI 功能规范,而非自行实现高级界面。许多功能需通过命令面板(按 F1 唤出)调用,需要输入命令名称而非点击图标或按钮。这是为保持 VSC 简洁、快速和免费而做出的合理妥协。事实上,这款 IDE 启动速度极快,即便不处理项目时,我也习惯将其作为通用文本编辑器使用。
值得一提的是,得益于海量优质扩展库(其中绝大多数免费),VS Code 展现出真正的强大实力。针对 C++和 CMake 都有专用扩展,下一节我们将具体介绍如何配置它们。
迈出第一步
VSC 可从官方网站获取:Visual Studio Code – Code Editing. Redefined。该网站提供了相当全面的下载选项,包括 Windows、macOS 以及多种 Linux 发行版:Debian、Ubuntu、Red Hat、Fedora 和 SUSE。请按照您所在平台的常规流程安装软件。安装完成后,您需要前往扩展市场 (Ctrl/Command + Shift + X)安装一系列扩展。以下是推荐初始安装的扩展:
微软的 C/C++
微软的 C/C++ 扩展包
twxs 的 CMake
微软的 CMake 工具
它们将提供常规的代码高亮功能,并支持直接从 IDE 编译、运行和调试代码,但您可能需要自行安装工具链。通常,VS Code 会在您开始打开相关文件时,通过弹出窗口建议安装扩展,因此您不必专门去搜寻。
如果您参与远程项目,我还建议安装微软的 Remote – SSH 扩展,这将使体验更加连贯和舒适;该扩展不仅能处理文件同步,还能让您通过附加到远程机器的调试器进行远程调试。
不过,还有一个更有趣的扩展改变了项目工作的范式;让我们看看它是如何做到的。
高级功能:开发容器
如果将应用程序部署到生产环境,无论是发布编译后的成品还是运行构建过程,确保所有依赖项都存在至关重要。否则,将会遇到各种问题。即使所有依赖项都已考虑在内,不同的版本或配置也可能导致解决方案的行为与开发或预发布环境不同。我曾多次遇到这种情况。在虚拟化技术普及之前,处理环境问题只是日常工作的一部分。
随着 Docker 等轻量级容器的引入,事情变得简单多了。突然间,你能够在一个精简的操作系统中运行服务,并将其隔离在自己的空间里。这种隔离允许将所有依赖项与容器一起打包,为开发者解决了一个大难题。
直到最近,在容器内进行开发仍需要手动构建、运行容器,并通过 IDE 的远程会话连接到容器。这一过程虽不算特别困难,但涉及的手动步骤可能导致不同开发者采用不同的操作方式。
近年来,微软发布了一项名为 Dev Containers(Development containers)的开放标准来解决这一不便。该规范主要包含一个 devcontainer.json 文件,您可将其置于项目仓库中,用于指导 IDE 如何在容器中设置开发环境。
要使用此功能,只需安装 Dev Containers by Microsoft 扩展并将其指向一个已适当配置的项目仓库。如果您不畏惧切换主 CMakeLists.txt 的挑战,不妨尝试使用本书的仓库:
git@github.com:PacktPublishing/Modern-CMake-for-Cpp-2E.git
我可以确认其他 IDE(如 CLion)也正在采用这一标准,因此如果您遇到所述情况,采用此做法似乎是个不错的选择。现在让我们来看看微软家族的下一个产品。
从 Visual Studio IDE 开始
Visual Studio(VS)是由微软开发的 Windows 平台集成开发环境。VS 曾支持 macOS 系统,但将于 2024 年 8 月停止维护。需注意将其与微软另一款 IDEVS Code 区分开来。
VS 提供多个版本:社区版、专业版和企业版。社区版免费且允许企业最多五人使用。成熟企业需支付授权费用,起价为每月每用户 45 美元。 图 3.5 展示了 VS 社区版的界面样式:

与本章讨论的其他集成开发环境(IDE)一样,如果您喜欢,也可以启用暗黑模式。接下来,我们将重点介绍这款 IDE 的显著特性。
您可能青睐它的理由
这款集成开发环境与 VS Code 共享诸多功能,提供相似风格但更为精致的体验。该套件功能丰富,其中许多功能通过图形用户界面、向导和可视化元素实现。大部分功能开箱即用,无需安装扩展(尽管仍有一个庞大而全面的功能包市场可供选择)。简而言之,它就像是进阶版的 VSC。
根据版本不同,您的测试工具将覆盖多种测试类型:单元测试、性能测试、负载测试、手动测试、测试资源管理器、测试覆盖率、IntelliTest 以及代码性能分析。其中性能分析器尤为实用,且在社区版中即可使用。
若您正在设计 Windows 桌面应用程序,VS 提供了可视化编辑器和大量组件库。对通用 Windows 平台(UWP)——Windows 10 引入的基于 Windows 应用程序的 UI 标准——有着全面支持。这种支持能实现时尚现代的设计,并针对自适应控件进行了深度优化,确保在不同屏幕上都能完美缩放。
值得一提的是,尽管 VS 是仅限 Windows 平台的 IDE,但你仍可以开发面向 Linux 和移动平台(Android 和 iOS)的项目。它还支持游戏开发者使用 Windows 原生库和虚幻引擎。
想亲身体验它的运作方式吗?以下是入门指南。
迈出第一步
该 IDE 仅适用于 Windows 系统,其安装流程遵循标准步骤。首先从 Free Developer Software & Services – Visual Studio 下载安装程序。运行安装程序后,您需要选择版本(Community、Professional 或 Enterprise)并勾选所需的工作负载:

工作负载实际上是一组功能集,使 VS 能够支持特定编程语言、环境或程序格式。部分工作负载包括 Python、Node.js 或.NET。我们当然已关注与 C++相关的那些( 图 3.6);针对不同使用场景提供了广泛支持:
使用 C++进行桌面开发
通用 Windows 平台开发
使用 C++ 进行游戏开发
使用 C++ 进行移动开发
使用 C++ 进行 Linux 开发
选择适合您目标应用的选项并点击安装 。不必担心需要安装所有选项以防万一——您随时可以重新运行安装程序来修改选择。如果您决定更精确地配置工作负载组件,请确保保持启用适用于 Windows 的 C++ CMake 工具或适用于 Linux 的 C++ CMake 工具选项以获得 CMake 支持。
安装完成后,您可以启动 IDE 并在开始窗口选择创建新项目 。系统将根据您之前安装的工作负载显示多个模板。要使用 CMake,请选择 CMake 项目模板。其他选项不一定使用它。创建项目后,您可以通过点击窗口顶部的绿色播放按钮来启动项目;代码将进行编译,您将看到基础程序执行后显示如下输出:
Hello CMake.
现在,您已准备好在 Visual Studio 中使用 CMake。
高级功能:热重载调试
虽然运行 Visual Studio 可能占用更多资源且启动时间较长,但它提供了众多无可匹敌的功能。其中一项重大变革就是热重载功能。其工作原理如下:打开一个 C++项目,附加调试器启动程序,在代码文件中进行修改后,按下热重载按钮(或 Alt + F10),您的更改将立即反映到正在运行的应用程序中,同时保持当前状态。
要确保启用热重载支持,请在项目 > 属性 > C/C++ > 常规菜单中设置以下两个选项:
调试信息格式必须设置为用于“编辑并继续”的程序数据库 /ZI
启用增量链接必须设置为是 /INCREMENTAL
热重载背后的机制看似魔法,但它确实是个极其实用的功能。该功能存在一些限制,比如无法应用于全局/静态数据修改、对象布局变更或”时间旅行”式修改(例如更改已构造对象的构造函数)。
你可以在官方文档中查看更多关于热重载的信息:Write and debug code by using Hot Reload – Visual Studio (Windows) | Microsoft Learn。
至此我们完成了对三大 IDE 的探索。初学时可能觉得陡峭,但我保证当你进阶到更复杂的任务时,在这些平台上投入的学习时间将很快获得回报。
总结
本章深入探讨了如何利用集成开发环境(IDE)来优化编程流程,特别聚焦于那些与 CMake 深度集成的 IDE。它为初学者和经验丰富的专业人士提供了一份全面指南,详细阐述了使用 IDE 的优势,以及如何根据个人或团队需求选择最适合的开发环境。
我们首先讨论了集成开发环境(IDE)在提升开发速度和代码质量方面的重要性,解释了什么是 IDE 以及它如何通过整合代码编辑器、编译器和调试器等工具来简化软件开发中的各个步骤。随后简要回顾了工具链的相关内容,说明了当系统中未安装这些工具时进行安装的必要性,并列举了一些最常见的选择。
我们探讨了如何开始使用 CLion 及其独特功能,并深入了解了其调试能力。由微软开发的免费跨平台 IDE——VS Code,因其庞大的扩展生态系统和对多种编程语言的支持而广受认可。我们指导您完成了初始设置及关键扩展的安装,并介绍了一项名为开发容器(Dev Containers)的高级功能。专为 Windows 设计的 VS IDE 提供了一个精致且功能丰富的环境,可满足不同用户需求。此外,我们还介绍了其设置流程、关键特性以及高级的热重载调试功能。
每个 IDE 章节都深入解析了选择特定 IDE 的原因、入门步骤以及该 IDE 的突出高级功能。我们还重点介绍了远程开发支持的概念,强调这一功能在行业中日渐增长的重要性。
总之,本章为程序员提供了选择和理解 IDE 的基础指南,清晰概述了主流选项、它们的独特优势,以及如何结合 CMake 有效使用这些工具来提升编码效率和项目管理。下一章中,我们将学习使用 CMake 进行项目设置的基础知识。









![[2021-4-6 更新]C启动-一款快速启动、桌面美化、桌面管理工具软件 - 宋马](https://pic.songma.com/blogimg/20250422/bc94d939c6e84346b26aa50582cba1cc.jpg)










暂无评论内容