「干货分享」如何使用CLion轻松解决C++开发者的7大痛点
  OQk9axLgKw38 2023年11月02日 28 0

CLion是一款专为开发C及C++所设计的跨平台IDE,它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。

在 C++ Foundation 开展的“2023 年度 C++ 开发者调查”中,社区确定了使用 C++ 时的一些主要痛点。

「干货分享」如何使用CLion轻松解决C++开发者的7大痛点_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 的代码补全。

「干货分享」如何使用CLion轻松解决C++开发者的7大痛点_C++_02

缩短构建时间

根据用户反馈,第二大挑战是构建时间,43% 的受访者认为这是一个主要痛点。 虽然 CLion 不包含编译器,而只是调用工具链中配置的编译器(例如 GCC 或 Clang),不能直接影响构建时间,但使用 CLion 的 CMake 分析功能也可以优化 CMake 执行步骤。 CMake 分析能够识别 CMake 配置期间最耗时的操作,并在必要时优化 CMake 脚本,有助于减少项目的总体构建时间。

「干货分享」如何使用CLion轻松解决C++开发者的7大痛点_C++_03

搭建 CI 管道

根据调查,第三大主要痛点是从头开始搭建持续集成管道(自动化构建、测试等)。CLion为此提供了很多工具, 内置了对所有主流 C++ 测试框架(Google Test、Boost.Test、Catch2、Doctest、CTest)的支持。 包括测试的专属运行和调试配置、用于运行或调试测试/套件/固定例程和检查其状态的装订区域图标、专属测试运行程序,以及测试和固定例程类的代码补全。

此外,还有适用于 TeamCity 的 CLion 插件、JetBrains 自己的自动化构建管理和 CI 工具,以及用于其他持续集成解决方案的插件。

「干货分享」如何使用CLion轻松解决C++开发者的7大痛点_IDE_04

管理 CMake 项目

31% 的用户表示,其主要痛点是管理 CMake 项目。 CMake 是最流行的 C 和 C++ 跨平台构建系统,CLion 捆绑了 CMake,并具有广泛的 CMake 集成,使 CMake 项目管理体验更为流畅。 CLion 搭载了一个强劲编辑器,这个编辑器具有完整的语法高亮显示、自动补全以及 CMake 脚本的快速文档、内置 CMake 调试器、针对添加配置、构建类型,创建 CMake 目标。在这些目标中添加或移除文件,以及重新加载 CMake 项目的内置 GUI 支持、CMake 预设和 CMake 配置文件支持以及其他功能。

「干货分享」如何使用CLion轻松解决C++开发者的7大痛点_C++_05

但 CMake 并不是 CLion 唯一支持的项目模型,管理 Makefile 也是用户经常报告的一大痛点。 好消息是,CLion 还支持 Makefile 项目和 Makefile 语言,这大幅简化了 Makefile 的使用。

实时检查代码中的线程、内存和类型安全问题

用户报告的其他几个主要痛点与安全有关, 包括线程安全(竞争、死锁等)、内存安全(边界安全、释放后使用、内存泄漏等)和类型安全。 为了识别和修正这些常见问题,CLion向开发者提供了多种静态和动态代码分析选项。 对于静态分析,CLion 提供了许多实用的代码检查、Clang-Tidy 集成以及内置数据流分析。

CLion 的数据流分析 (DFA) 可以静态识别许多未定义行为和潜在漏洞的来源,例如无限循环、无限递归、缺少 return 语句、悬空指针、可能无效的迭代器和越界内存访问。 DFA 可以在单个函数内局部运作,也可以在整个翻译单元上全局运作。 在以下示例中,局部 DFA 识别出一个可能因调用 vector::push_back: 而失效的迭代器:

「干货分享」如何使用CLion轻松解决C++开发者的7大痛点_IDE_06

在以下示例中,全局 DFA 通过已在另一个函数中删除的指针发出释放后写入警告:

「干货分享」如何使用CLion轻松解决C++开发者的7大痛点_C++_07

对于动态分析,CLion 与 Valgrind 以及众多 Sanitizer 完全集成,例如 AdressSanitizer、LeakSanitizer、ThreadSanitizer、UndefinedBehaviourSanitizer 和 MemorySanitizer。 我们最近还增加了更好的多线程调试支持,用于跟踪并发问题,例如并行堆栈视图以及调试期间冻结和解冻个别线程的功能。

开发环境

用户报告的另一个痛点是从头开始搭建开发环境(编译器、构建系统等)的困难,CLion 也可以为此提供帮助:如前文所述,CLion 已捆绑 CMake,但它还附有捆绑的调试器、Windows 上的捆绑 MinGW、通过专属 Docker 插件和 Docker 工具链实现的 Docker 支持以及其他功能。对于远程开发,CLion 支持 JetBrains Gateway,允许在远程主机上运行 CLion 并通过瘦客户端连接,以及搭建远程开发环境的各种其他方式。

「干货分享」如何使用CLion轻松解决C++开发者的7大痛点_IDE_08

将代码现代化

最后将现有代码迁移到最新的语言标准对于 8% 的用户来说是主要痛点,对于 27% 的用户来说是次要痛点。 为了轻松地将现有代码迁移到更现代的 C++ 标准,CLion直接在 IDE 中支持 Clang-Tidy 现代化检查。

「干货分享」如何使用CLion轻松解决C++开发者的7大痛点_C++_09

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  gBkHYLY8jvYd   2023年11月19日   20   0   0 #includecic++
  ZXL8ALkrtBPG   2023年12月06日   14   0   0 字面量c++
  lh6O4DgR0ZQ8   2023年11月24日   12   0   0 cii++c++
  gBkHYLY8jvYd   2023年11月19日   19   0   0 十进制高精度c++
  gBkHYLY8jvYd   2023年12月11日   9   0   0 cic++最小值
  gBkHYLY8jvYd   2023年11月19日   16   0   0 测试点cic++
  lh6O4DgR0ZQ8   2023年11月19日   17   0   0 Systemide多态
OQk9axLgKw38