翻譯|行業(yè)資訊|編輯:龔雪|2023-10-23 11:06:25.930|閱讀 122 次
概述:本文主要介紹如何使用 CLion 解決 7 大主要 C++ 痛點,歡迎下載相關(guān)IDE體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
CLion是一款專為開發(fā)C及C++所設(shè)計的跨平臺IDE,它是以IntelliJ為基礎(chǔ)設(shè)計的,包含了許多智能功能來提高開發(fā)人員的生產(chǎn)力。這種強(qiáng)大的IDE幫助開發(fā)人員在Linux、OS X和Windows上來開發(fā)C/C++,同時它還使用智能編輯器來提高代碼質(zhì)量、自動代碼重構(gòu)并且深度整合CMake編譯系統(tǒng),從而提高開發(fā)人員的工作效率。
在 C++ Foundation 開展的“2023 年度 C++ 開發(fā)者調(diào)查”中,社區(qū)確定了使用 C++ 時的一些主要痛點。
如本文所述,CLion可以通過多種方式幫助 C++ 開發(fā)者:
使用 C++ 時最大的挑戰(zhàn)是管理 C++ 應(yīng)用程序依賴的第三方庫:47% 的用戶認(rèn)為這是一個主要痛點。與許多其他編程語言不同,C++ 沒有標(biāo)準(zhǔn)的軟件包管理器,并且使用了各種解決方案。 CLion具有對 vcpkg 的內(nèi)置支持,這是最流行的 C++ 軟件包管理器之一,您還可以將另一款流行的 C++ 軟件包管理器 Conan 與 CLion 結(jié)合使用。適用于 CLion 的 Conan 插件目前與最新版本的 CLion 不兼容,修正正在進(jìn)行中,但在此期間您仍然可以將 Conan 與 CLion 一起使用,因為 Conan 會輸出與 CLion 兼容的 CMake 文件。
對于 CMake 已知的第三方軟件包,CLion 現(xiàn)在提供 find_package 的代碼補(bǔ)全。
根據(jù)用戶反饋,第二大挑戰(zhàn)是構(gòu)建時間,43% 的受訪者認(rèn)為這是一個主要痛點。 雖然 CLion 不包含編譯器,而只是調(diào)用工具鏈中配置的編譯器(例如 GCC 或 Clang),不能直接影響構(gòu)建時間,但使用 CLion 的 CMake 分析功能也可以優(yōu)化 CMake 執(zhí)行步驟。 CMake 分析能夠識別 CMake 配置期間最耗時的操作,并在必要時優(yōu)化 CMake 腳本,有助于減少項目的總體構(gòu)建時間。
根據(jù)調(diào)查,第三大主要痛點是從頭開始搭建持續(xù)集成管道(自動化構(gòu)建、測試等)。CLion為此提供了很多工具, 內(nèi)置了對所有主流 C++ 測試框架(Google Test、Boost.Test、Catch2、Doctest、CTest)的支持。 包括測試的專屬運(yùn)行和調(diào)試配置、用于運(yùn)行或調(diào)試測試/套件/固定例程和檢查其狀態(tài)的裝訂區(qū)域圖標(biāo)、專屬測試運(yùn)行程序,以及測試和固定例程類的代碼補(bǔ)全。
此外,還有適用于 TeamCity 的 CLion 插件、JetBrains 自己的自動化構(gòu)建管理和 CI 工具,以及用于其他持續(xù)集成解決方案的插件。
31% 的用戶表示,其主要痛點是管理 CMake 項目。 CMake 是最流行的 C 和 C++ 跨平臺構(gòu)建系統(tǒng),CLion 捆綁了 CMake,并具有廣泛的 CMake 集成,使 CMake 項目管理體驗更為流暢。 CLion 搭載了一個強(qiáng)勁編輯器,這個編輯器具有完整的語法高亮顯示、自動補(bǔ)全以及 CMake 腳本的快速文檔、內(nèi)置 CMake 調(diào)試器、針對添加配置、構(gòu)建類型,創(chuàng)建 CMake 目標(biāo)。在這些目標(biāo)中添加或移除文件,以及重新加載 CMake 項目的內(nèi)置 GUI 支持、CMake 預(yù)設(shè)和 CMake 配置文件支持以及其他功能。
但 CMake 并不是 CLion 唯一支持的項目模型,管理 Makefile 也是用戶經(jīng)常報告的一大痛點。 好消息是,CLion 還支持 Makefile 項目和 Makefile 語言,這大幅簡化了 Makefile 的使用。
用戶報告的其他幾個主要痛點與安全有關(guān), 包括線程安全(競爭、死鎖等)、內(nèi)存安全(邊界安全、釋放后使用、內(nèi)存泄漏等)和類型安全。 為了識別和修正這些常見問題,CLion向開發(fā)者提供了多種靜態(tài)和動態(tài)代碼分析選項。 對于靜態(tài)分析,CLion 提供了許多實用的代碼檢查、Clang-Tidy 集成以及內(nèi)置數(shù)據(jù)流分析。
CLion 的數(shù)據(jù)流分析 (DFA) 可以靜態(tài)識別許多未定義行為和潛在漏洞的來源,例如無限循環(huán)、無限遞歸、缺少 return 語句、懸空指針、可能無效的迭代器和越界內(nèi)存訪問。 DFA 可以在單個函數(shù)內(nèi)局部運(yùn)作,也可以在整個翻譯單元上全局運(yùn)作。 在以下示例中,局部 DFA 識別出一個可能因調(diào)用 vector::push_back: 而失效的迭代器:
在以下示例中,全局 DFA 通過已在另一個函數(shù)中刪除的指針發(fā)出釋放后寫入警告:
對于動態(tài)分析,CLion 與 Valgrind 以及眾多 Sanitizer 完全集成,例如 AdressSanitizer、LeakSanitizer、ThreadSanitizer、UndefinedBehaviourSanitizer 和 MemorySanitizer。 我們最近還增加了更好的多線程調(diào)試支持,用于跟蹤并發(fā)問題,例如并行堆棧視圖以及調(diào)試期間凍結(jié)和解凍個別線程的功能。
用戶報告的另一個痛點是從頭開始搭建開發(fā)環(huán)境(編譯器、構(gòu)建系統(tǒng)等)的困難,CLion 也可以為此提供幫助:如前文所述,CLion 已捆綁 CMake,但它還附有捆綁的調(diào)試器、Windows 上的捆綁 MinGW、通過專屬 Docker 插件和 Docker 工具鏈實現(xiàn)的 Docker 支持以及其他功能。對于遠(yuǎn)程開發(fā),CLion 支持 JetBrains Gateway,允許在遠(yuǎn)程主機(jī)上運(yùn)行 CLion 并通過瘦客戶端連接,以及搭建遠(yuǎn)程開發(fā)環(huán)境的各種其他方式。
最后將現(xiàn)有代碼遷移到最新的語言標(biāo)準(zhǔn)對于 8% 的用戶來說是主要痛點,對于 27% 的用戶來說是次要痛點。 為了輕松地將現(xiàn)有代碼遷移到更現(xiàn)代的 C++ 標(biāo)準(zhǔn),CLion直接在 IDE 中支持 Clang-Tidy 現(xiàn)代化檢查。
Jetbrains技術(shù)交流群(QQ):786598704 歡迎一起進(jìn)群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)