JetBrains CLion2021是一款功能十分強大的跨平臺IDE程序開發(fā)軟件,該軟件能夠為用戶提供企業(yè)級別的C/C++程序開發(fā)環(huán)境,內(nèi)置智能代碼編輯器,幫助用戶高效率地完成代碼程序的調(diào)試和開發(fā),并且在這你還可以借助各種參數(shù)名稱的提示來進行充分了解函數(shù)調(diào)用,極大的提升代碼編輯效率。它現(xiàn)在能夠支持各種工具鏈設(shè)置,并且還可以使其更易于配置,滿足用戶的工作需求,喜歡的小伙伴千萬不要錯過哦。
【功能介紹】
一、工具鏈
1、Docker 工具鏈
Docker 容器是用于搭建環(huán)境和開始使用環(huán)境的最熱門且最簡單的方式之一。 無需在軟件中針對 Docker 使用遠程工具鏈,您現(xiàn)在可以使用原生 Docker 工具鏈。 這可以避免冗余的源代碼同步過程,因為項目文件夾僅安裝到容器中。
還捆綁了 Docker 插件,使 IDE 能夠訪問 Services(服務(wù))工具窗口和許多 Docker 特定操作。
2、自定義編譯器
使用自定義編譯器或尚不原生支持的編譯器是嵌入式開發(fā)中的常見情況。 現(xiàn)在,可以通過一種方式向描述有關(guān)編譯器的所有必要信息,并像原生支持一樣使用編譯器。
使用 Settings | Build, Execution, Deployment | Toolchains | Custom Defined Compiler(設(shè)置 | 構(gòu)建、執(zhí)行、部署 | 工具鏈 | 自定義編譯器)啟用自定義編譯器,并提供包含您的自定義編譯器定義的 *.yaml 文件。
3、通過腳本初始化工具鏈環(huán)境
在某些情況下,編譯器運行的環(huán)境需要通過腳本進行初始化。 它可以初始化編譯器環(huán)境變量,自定義 PATH 變量等軟件中使用 Settings(設(shè)置)| Build, Execution, Deployment(構(gòu)建、執(zhí)行、部署)| Toolchains(工具鏈)并選擇 Add environment(添加環(huán)境)| From file(從文件)以對您要使用的工具鏈提供此類腳本。
4、Windows 平臺捆綁 MinGW
現(xiàn)已在 Windows 平臺捆綁 MinGW 工具鏈以便快速設(shè)置,如果您的計算機上沒有安裝任何其他選項,則您可以依靠該工具鏈。 捆綁的確切版本為 MinGW-w64 9.0,帶有 languages=c,c++、posix 線程和 seh 代碼異常。
為 MinGW 用戶提供的另一項改進是捆綁了支持 Python 的 64 位 GDB v10.2。
5、Windows 平臺系統(tǒng)工具鏈
Windows 平臺的全新系統(tǒng)工具鏈,與 Linux 和 macOS 平臺的同類工具鏈相似,支持在不選擇預(yù)定義環(huán)境(如 MinGW、Cygwin、WSL 或 Visual Studio)的情況下配置 CMake、編譯器和調(diào)試器可執(zhí)行文件。 這可能用于 Windows 平臺的 ARM 工具鏈或其他嵌入式工具鏈。
二、CMake
1、CMake 生成器
CMake 配置文件設(shè)置頁面(Settings | Build, Execution, Deployment | CMake(設(shè)置 | 構(gòu)建、執(zhí)行、部署 | CMake))中添加了用于設(shè)置 CMake 生成器的全新 UI。 用戶可以使用所選工具鏈的默認值或設(shè)置預(yù)定義列表中的任何生成器。
使用 UI 字段時,同一頁面上的 CMake 選項會自動更新,反之亦然。
2、Ninja 生成器
Ninja 是目前使用的最熱門且有效的 CMake 生成器之一。新版與 Ninja v1.10.2 捆綁在一起。
對于本地工具鏈(即不包括遠程、Docker、WSL)和 CMake v3.20 及更高版本,Ninja 現(xiàn)在是新創(chuàng)建的項目或首次在軟件中打開的項目的默認生成器。
現(xiàn)在捆綁了 CMake 3.21.1。 對于 CMake v3.20 及更高版本,在應(yīng)用中默認使用 CMake File API 來查詢項目信息。
三、其他項目模型
1、Makefile
使用 Settings | Build, Execution, Deployment | Makefile(設(shè)置 | 構(gòu)建、執(zhí)行、部署 | Makefile)中的新 Build directory(構(gòu)建目錄)選項,配置在軟件中加載 Makefile 項目時會執(zhí)行的所有 Make 任務(wù)的目錄。 配置的目錄會通過 -C 選項傳遞給 Make 調(diào)用。 構(gòu)建目錄中諸如 autom4te.cache 之類的文件夾會被 CLion 標(biāo)記為排除。
2、Gradle
雖然仍然可以在軟件中將 Gradle 項目模型用于 C++ 項目,但現(xiàn)在應(yīng)用中的 Gradle 和 Gradle Native 插件均已取消捆綁。 您可以通過 Settings | Plugins(設(shè)置 | 插件)來安裝這些插件。
四、調(diào)試器功能增強
1、改進了類型呈現(xiàn)
高度模板化的標(biāo)準(zhǔn)庫類型,或具有全局和明顯命名空間說明符的類型,在調(diào)試期間可能會在變量視圖中生成長條目。
為改善調(diào)試體驗,現(xiàn)在會執(zhí)行一些額外處理,從而以更具可讀性且更加友好的方式在變量視圖中呈現(xiàn)類型:
剝離輔助命名空間、全局和函數(shù)范圍說明符以及標(biāo)準(zhǔn)庫 ABI 版本命名空間。
通過將標(biāo)準(zhǔn)庫類型替換為更具可讀性的別名來簡化標(biāo)準(zhǔn)庫類型。
您還可以將類型從演示中完全移除。 這可以幫助您專注于變量值。
2、改進了框架視圖
在調(diào)試器的框架視圖中,除了類型呈現(xiàn)改進之外,現(xiàn)在還改進了函數(shù)演示:
移除返回類型(如有)。
隱藏函數(shù)形參。
隱藏封閉類型的模板實參和函數(shù)本身(如有)。
以粗體呈現(xiàn)函數(shù)的名稱,以便與命名空間和封閉類型區(qū)分開來。
可以添加模塊名稱以隨時顯示代碼以哪種二進制文件格式執(zhí)行。
在線程列表中顯示由操作系統(tǒng)在線程開始時給出的線程 ID 以及線程名稱。
3、針對指針的 View as Array
新的 View as Array…(作為數(shù)組查看…)操作現(xiàn)在可用于任何指針變量,并添加了可將指針值作為數(shù)組呈現(xiàn)的觀察點。 該操作在變量視圖的上下文菜單中可用。 您只需指定數(shù)組的大小即可。
4、可自定義的調(diào)試器演示
要控制調(diào)試器中類型、變量和框架的演示方式,請使用 Settings | Build, Execution, Deployment | Debugger | Data Views | C/C++(設(shè)置 | 構(gòu)建、執(zhí)行、部署 | 調(diào)試器 | 數(shù)據(jù)視圖 | C/C++)(或者,如果在軟件中禁用了所有其他語言調(diào)試器,則僅為 Data Views(數(shù)據(jù)視圖),無單獨的 C/C++)。
或者,您也可以直接從 Debug(調(diào)試)工具窗口的上下文菜單中控制演示方式。
5、更方便的評估表達式
作為正在進行的調(diào)試器 UI 重新設(shè)計的一部分,Evaluate expression(評估表達式)現(xiàn)已直接集成在 Debug(調(diào)試)工具窗口中。 這使它更易于發(fā)現(xiàn)和易于使用。
6、Parallel Stacks 視圖
在調(diào)試多線程應(yīng)用程序時,您必須同時跟蹤多個線程。 新的 Parallel Stacks(并行堆棧)視圖已作為 Debug(調(diào)試)工具窗口中的單獨選項卡實現(xiàn),可以顯示所有線程的線程調(diào)用堆棧信息。 該視圖可用于檢查所有正在運行的線程的調(diào)用路徑和執(zhí)行點。
7、增強了十六進制視圖
數(shù)字變量的十六進制視圖已得到改進,已不再是軟件中的實驗性功能。 請在 Settings | Build, Execution, Deployment | Debugger | Data Views | C/C++(設(shè)置 | 構(gòu)建、執(zhí)行、部署 | 調(diào)試器 | 數(shù)據(jù)視圖 | C/C++)或在變量視圖的上下文菜單中啟用該視圖。
五、RTOS 線程視圖
1、FreeRTOS 線程視圖
通過添加對象和堆視圖對 FreeRTOS thread(FreeRTOS 線程)視圖進行了擴展:
Task(任務(wù))表顯示了包含狀態(tài)信息的任務(wù)列表。
Queue(隊列)表顯示了當(dāng)前有效隊列、信號量和互斥量。
Timer(計時器)表列出了軟件計時器。
Heap Usage(堆使用率)表顯示了當(dāng)前的堆使用率和內(nèi)存塊分配。
2、Zephyr RTOS 線程視圖
現(xiàn)已支持 Zephyr RTOS。 要啟用與 FreeRTOS 上的類似的任務(wù)視圖,請使用 Settings | Build, Execution, Deployment | Embedded Development | RTOS Integration(設(shè)置 | 構(gòu)建、執(zhí)行、部署 | 嵌入式開發(fā) | RTOS 集成),然后在其中選擇 Zephyr。
六、類型提示
1、PreviousNext
為推導(dǎo)類型添加了類型提示以提高代碼可讀性。 新提示可針對 auto 變量、在結(jié)構(gòu)化綁定中,以及針對 lambda 返回類型顯示類型。
您可以在 Settings | Editor | Inlay Hints | C/C++(設(shè)置 | 編輯器 | 內(nèi)嵌提示 | C/C++)中或直接從提示的上下文菜單中禁用或啟用特定類型提示。
如果類型提示包含模板實例化,則只需點擊尖括號即可收起模板實參。 此外,通過 Ctrl+Click 可導(dǎo)航到您所點擊的類型的聲明。
七、增強了 Structure 視圖
在 Structure(結(jié)構(gòu))工具窗口 (Alt+7) 或 Structure(結(jié)構(gòu))彈出窗口 (Ctrl+F12) 中探索文件的結(jié)構(gòu)時,您可以更加輕松地區(qū)分具有相同名稱的函數(shù),因為現(xiàn)已在這些窗口中顯示成員函數(shù)的限定名稱。
八、靜態(tài)分析
1、Clang 工具更新
CLion 中的 LLVM 工具已升級到 v14.0.0。 此項升級提高了基于 Clangd 的語言引擎的準(zhǔn)確性,并更新了捆綁的 Clang-Tidy 和 ClangFormat 可執(zhí)行文件。 對于 Clang-Tidy,這也意味著在更新后首次啟動 CLion 時,您會收到一些新的檢查通知。
2、更多 MISRA 檢查
軟件的內(nèi)置分析器中添加了新的 MISRA 檢查:
函數(shù)標(biāo)識符要么用于調(diào)用該函數(shù),要么以 & 開頭。
循環(huán)計數(shù)器應(yīng)由在循環(huán)期間保持恒定的值修改。
for 循環(huán)中應(yīng)該只有一個循環(huán)計數(shù)器。
循環(huán)計數(shù)器不得在條件或語句等內(nèi)容中修改。
可以在此處找到應(yīng)用中可用的 MISRA C 2012 和 MISRA C++ 2008 檢查的完整列表。
3、調(diào)用上下文敏感分析
CLion 的數(shù)據(jù)流分析現(xiàn)在以不同的方式處理不同的調(diào)用,因此變得更加準(zhǔn)確。 這具體意味著:
分別分析每個調(diào)用點的每個函數(shù)。對不同調(diào)用點的形參和返回值分別進行分析。
4、更強大的生存期分析
軟件的生存期分析(基于 Herb Sutter 的 Lifetime Safety 提案)得到了增強,現(xiàn)在可以捕獲諸如懸空迭代器和修改后的所有者(由非 const 引用傳遞的所有者被假定為已修改)等用例。
九、VCS
有時,您可能會已經(jīng)準(zhǔn)備好要發(fā)布一些提交,而其他的提交卻仍在進行中。 在這種情況下,您可能需要僅推送您確定要發(fā)布的提交。 新的 Push All up to Here(推送此前所有提交)操作使您可以推送您在 Git 工具窗口的 Log(日志)選項卡中所選及其之前的提交。
十、其他功能增強
1、在這里的自動導(dǎo)入現(xiàn)在會對屬于項目的頭文件使用 "" 而非 <>。 可以通過關(guān)閉 Settings | Editor | General | Auto Import | C/C++ | Auto import local files with quotes(設(shè)置 | 編輯器 | 常規(guī) | 自動導(dǎo)入 | C/C++ | 自動導(dǎo)入帶引號的本地文件)來更改此默認行為。
2、為針對 WSL 上的項目提高性能,此類情況下,基于 Clangd 的語言引擎現(xiàn)在會直接在 WSL 上運行。
【軟件特色】
1、提供C及C++支持(包含C++11, libc++ 和Boost),同時也支持JavaScript, XML, HTML 和CSS 。
2、支持GCC、clang、MinGW、Cygwin 編譯器以及 GDB 調(diào)試器。
3、提供對CMake 支持:包含自動處理CMake changes和CMake targets,更新新創(chuàng)建的 C/C++ 檔案及CMake Cache 編輯器。
4、提供各式編碼輔助:包含多行編輯功能、智能完成功能以及一鍵導(dǎo)航等。
5、安全可信的自動代碼重構(gòu)功能。
7、代碼分析功能:監(jiān)控代碼品質(zhì)并提供快速修復(fù)讓開發(fā)人員得以及時就地解決問題。
8、集成GDB 調(diào)試器及評估表達式(expressions)功能、STL 容器渲染器(renderers)、監(jiān)視(watches)、內(nèi)嵌變量視圖等。
9、與最熱門的版本控制系統(tǒng)集成:Subversion、Git、GitHub,、Mercurial、CVS、Perforce及TFS。
10、內(nèi)建terminal 模式并可通過插件實現(xiàn)提供Vim-emulation模式。
【軟件優(yōu)勢】
1、動力語言的動力工具
在IDE為他們完成所有平凡的開發(fā)任務(wù)時,誰不愿意以思想的速度進行編碼?但是對于像C++這樣的棘手的語言,使用其現(xiàn)代標(biāo)準(zhǔn)和大量模板化的庫,這真的有可能嗎?為什么,是的,是的!看到這個相信這個。
2、代碼協(xié)助
使用對C和C++有深刻理解的編輯器可以有效地讀取和編寫代碼。根據(jù)“智能完成”中的類型過濾完成結(jié)果。使用面包屑跟蹤您在范圍層次結(jié)構(gòu)內(nèi)的位置。借助參數(shù)名稱提示,深入了解函數(shù)調(diào)用。查找符號的上下文用法,或通過鍵入符號名稱直接跳轉(zhuǎn)到該符號。甚至可以確保您的代碼符合編碼準(zhǔn)則,包括格式,命名等。
3、代碼生成
立即生成大量樣板代碼。使用簡單的快捷方式覆蓋和實現(xiàn)功能。生成構(gòu)造函數(shù)和析構(gòu)函數(shù),getter和setter以及相等,關(guān)系和流輸出運算符。用語句包裝代碼塊,或根據(jù)用法生成聲明。創(chuàng)建自定義實時模板,以在整個代碼庫中重用典型代碼塊,以節(jié)省時間并保持一致的樣式。
4、安全重構(gòu)
重命名符號;內(nèi)聯(lián)函數(shù),變量或宏;在層次結(jié)構(gòu)中移動成員;更改功能簽名;并提取函數(shù),變量,參數(shù)或typedef。無論您使用哪種自動重構(gòu),放心的都可以安全地在整個代碼中傳播適當(dāng)?shù)母摹?/p>
5、快速文檔
檢查插入符號下的代碼,以了解所有內(nèi)容:函數(shù)簽名詳細信息,查看注釋,預(yù)覽Doxygen樣式的文檔,檢查推斷出的類型以查找缺少顯式類型的符號,甚至查看格式正確的最終宏替換。
6、動態(tài)代碼分析
創(chuàng)建美觀而正確的代碼。使用它,當(dāng)您鍵入內(nèi)容時,可以立即檢測到潛在的代碼問題。
...并可以通過按一下按鈕進行固定,而IDE可以正確處理這些更改。
運行其代碼分析,數(shù)據(jù)流分析,其他基于Clangd的檢查以及Clang-Tidy,以檢測未使用和無法訪問的代碼,懸空的指針,缺少類型強制轉(zhuǎn)換,沒有匹配的函數(shù)重載以及許多其他問題。
7、集成調(diào)試器
使用GDB或LLDB作為后端,可以輕松地在CLion友好的調(diào)試器中調(diào)查和解決問題。
附加到本地進程或遠程調(diào)試。對于嵌入式開發(fā),依靠OpenOCD和嵌入式GDB服務(wù)器配置來使用它進行片上調(diào)試。
深入了解拆卸和內(nèi)存視圖以及嵌入式設(shè)備的外圍視圖。
設(shè)置斷點:
使用行,符號,異常和條件斷點來檢查代碼的執(zhí)行。記錄事件,擊中斷點后將其刪除,或禁用它們直到擊中另一個斷點。所有這些都可以在專用對話框中進行配置。
評估表達式:
在某些執(zhí)行點停止時,可以使用“監(jiān)視”視圖和“變量”視圖,或評估函數(shù)調(diào)用或某些復(fù)雜表達式的結(jié)果。
內(nèi)聯(lián)查看值:
調(diào)試時,將在編輯器中顯示變量的值,從而獲得項目的完整視圖-無需切換到“調(diào)試”工具窗口中的“變量”選項卡!
8、完全集成的C/C++開發(fā)環(huán)境
項目模型:
使用項目模型在編輯器中告知其編碼幫助,重構(gòu),編碼樣式一致性和其他智能操作。支持的格式包括CMake,Makefile,Gradle和編譯數(shù)據(jù)庫。
以鍵盤為中心的方法:
為了幫助您專注于代碼并提高生產(chǎn)率,幾乎提供了其所有功能,操作和命令的便捷鍵盤快捷鍵。
歡迎Vim愛好者安裝Vim-emulation插件。
本地和遠程工作:
對于嵌入式終端,可以使用SSH協(xié)議在本地或遠程運行任何命令而無需離開IDE。
在本地編輯代碼后,可以在本地,遠程或在芯片上構(gòu)建,運行或調(diào)試應(yīng)用程序或單元測試。
一站式服務(wù):
包括日常開發(fā)的所有基本要素:VCS(SVN,Git,GitHub,Mercurial,Perforce),Google Test,Catch和Boost.Test框架用于單元測試,Doxygen,數(shù)據(jù)庫工具和Markdown支持。