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