CLion是一款专为开发C及C所设计的跨平台IDE它是以IntelliJ为基础设计的包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统从而提高开发人员的工作效率。在 C Foundation 开展的“2023 年度 C 开发者调查”中社区确定了使用 C 时的一些主要痛点。如本文所述CLion可以通过多种方式帮助 C 开发者管理第三方库缩短构建时间搭建 CI 管道管理 CMake 项目实时检查代码中的线程、内存和类型安全问题从头开始搭建开发环境将代码现代化管理第三方库使用 C 时最大的挑战是管理 C 应用程序依赖的第三方库47% 的用户认为这是一个主要痛点。与许多其他编程语言不同C 没有标准的软件包管理器并且使用了各种解决方案。 CLion具有对 vcpkg 的内置支持这是最流行的 C 软件包管理器之一您还可以将另一款流行的 C 软件包管理器 Conan 与 CLion 结合使用。适用于 CLion 的 Conan 插件目前与最新版本的 CLion 不兼容修正正在进行中但在此期间您仍然可以将 Conan 与 CLion 一起使用因为 Conan 会输出与 CLion 兼容的 CMake 文件。对于 CMake 已知的第三方软件包CLion 现在提供 find_package 的代码补全。缩短构建时间根据用户反馈第二大挑战是构建时间43% 的受访者认为这是一个主要痛点。 虽然 CLion 不包含编译器而只是调用工具链中配置的编译器例如 GCC 或 Clang不能直接影响构建时间但使用 CLion 的 CMake 分析功能也可以优化 CMake 执行步骤。 CMake 分析能够识别 CMake 配置期间最耗时的操作并在必要时优化 CMake 脚本有助于减少项目的总体构建时间。搭建 CI 管道根据调查第三大主要痛点是从头开始搭建持续集成管道自动化构建、测试等。CLion为此提供了很多工具 内置了对所有主流 C 测试框架Google Test、Boost.Test、Catch2、Doctest、CTest的支持。 包括测试的专属运行和调试配置、用于运行或调试测试/套件/固定例程和检查其状态的装订区域图标、专属测试运行程序以及测试和固定例程类的代码补全。此外还有适用于TeamCity的 CLion 插件、JetBrains 自己的自动化构建管理和 CI 工具以及用于其他持续集成解决方案的插件。管理 CMake 项目31% 的用户表示其主要痛点是管理 CMake 项目。 CMake 是最流行的 C 和 C 跨平台构建系统CLion 捆绑了 CMake并具有广泛的 CMake 集成使 CMake 项目管理体验更为流畅。 CLion 搭载了一个强劲编辑器这个编辑器具有完整的语法高亮显示、自动补全以及 CMake 脚本的快速文档、内置 CMake 调试器、针对添加配置、构建类型创建 CMake 目标。在这些目标中添加或移除文件以及重新加载 CMake 项目的内置 GUI 支持、CMake 预设和 CMake 配置文件支持以及其他功能。但 CMake 并不是 CLion 唯一支持的项目模型管理 Makefile 也是用户经常报告的一大痛点。 好消息是CLion 还支持 Makefile 项目和 Makefile 语言这大幅简化了 Makefile 的使用。实时检查代码中的线程、内存和类型安全问题用户报告的其他几个主要痛点与安全有关 包括线程安全竞争、死锁等、内存安全边界安全、释放后使用、内存泄漏等和类型安全。 为了识别和修正这些常见问题CLion向开发者提供了多种静态和动态代码分析选项。 对于静态分析CLion 提供了许多实用的代码检查、Clang-Tidy 集成以及内置数据流分析。CLion 的数据流分析 (DFA) 可以静态识别许多未定义行为和潜在漏洞的来源例如无限循环、无限递归、缺少 return 语句、悬空指针、可能无效的迭代器和越界内存访问。 DFA 可以在单个函数内局部运作也可以在整个翻译单元上全局运作。 在以下示例中局部 DFA 识别出一个可能因调用 vector::push_back: 而失效的迭代器在以下示例中全局 DFA 通过已在另一个函数中删除的指针发出释放后写入警告对于动态分析CLion 与 Valgrind 以及众多 Sanitizer 完全集成例如 AdressSanitizer、LeakSanitizer、ThreadSanitizer、UndefinedBehaviourSanitizer 和 MemorySanitizer。 我们最近还增加了更好的多线程调试支持用于跟踪并发问题例如并行堆栈视图以及调试期间冻结和解冻个别线程的功能。开发环境用户报告的另一个痛点是从头开始搭建开发环境编译器、构建系统等的困难CLion 也可以为此提供帮助如前文所述CLion 已捆绑 CMake但它还附有捆绑的调试器、Windows 上的捆绑 MinGW、通过专属 Docker 插件和 Docker 工具链实现的 Docker 支持以及其他功能。对于远程开发CLion 支持 JetBrains Gateway允许在远程主机上运行 CLion 并通过瘦客户端连接以及搭建远程开发环境的各种其他方式。将代码现代化最后将现有代码迁移到最新的语言标准对于 8% 的用户来说是主要痛点对于 27% 的用户来说是次要痛点。 为了轻松地将现有代码迁移到更现代的 C 标准CLion直接在 IDE 中支持 Clang-Tidy 现代化检查。