翻譯|行業資訊|編輯:龔雪|2023-10-23 11:06:25.930|閱讀 122 次
概述:本文主要介紹如何使用 CLion 解決 7 大主要 C++ 痛點,歡迎下載相關IDE體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
CLion是一款專為開發C及C++所設計的跨平臺IDE,它是以IntelliJ為基礎設計的,包含了許多智能功能來提高開發人員的生產力。這種強大的IDE幫助開發人員在Linux、OS X和Windows上來開發C/C++,同時它還使用智能編輯器來提高代碼質量、自動代碼重構并且深度整合CMake編譯系統,從而提高開發人員的工作效率。
在 C++ Foundation 開展的“2023 年度 C++ 開發者調查”中,社區確定了使用 C++ 時的一些主要痛點。
如本文所述,CLion可以通過多種方式幫助 C++ 開發者:
使用 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 腳本,有助于減少項目的總體構建時間。
根據調查,第三大主要痛點是從頭開始搭建持續集成管道(自動化構建、測試等)。CLion為此提供了很多工具, 內置了對所有主流 C++ 測試框架(Google Test、Boost.Test、Catch2、Doctest、CTest)的支持。 包括測試的專屬運行和調試配置、用于運行或調試測試/套件/固定例程和檢查其狀態的裝訂區域圖標、專屬測試運行程序,以及測試和固定例程類的代碼補全。
此外,還有適用于 TeamCity 的 CLion 插件、JetBrains 自己的自動化構建管理和 CI 工具,以及用于其他持續集成解決方案的插件。
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 現代化檢查。
Jetbrains技術交流群(QQ):786598704 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網