In der jährlichen C++-Entwicklerumfrage 2023 der C++ Foundation identifizierte die Community einige der größten Probleme bei der Verwendung von C++ (siehe Seite 11 der Umfragezusammenfassung ).
Wie in diesem Artikel erwähnt, kann CLion C++-Entwicklern in vielerlei Hinsicht helfen. Lassen Sie uns diese einzeln durchgehen :
Verwalten Sie Bibliotheken von Drittanbietern
Reduzieren Sie die Bauzeit
Erstellen Sie eine CI-Pipeline
Verwalten Sie CMake-Projekte
Überprüfen Sie Ihren Code in Echtzeit auf Threading-, Speicher- und Typsicherheitsprobleme
Erstellen Sie eine Entwicklungsumgebung von Grund auf
Modernisieren Sie Ihren Code
Verwalten Sie Bibliotheken von Drittanbietern
Die größte Herausforderung bei der Verwendung von C++ ist die Verwaltung der Bibliotheken von Drittanbietern, auf die C++-Anwendungen angewiesen sind : 47 % der Benutzer nannten dies als Hauptproblem. Im Gegensatz zu vielen anderen Programmiersprachen verfügt C++ nicht über einen Standard-Paketmanager und es kommen verschiedene Lösungen zum Einsatz. CLion verfügt über integrierte Unterstützung für vcpkg , einen der beliebtesten C++-Paketmanager. Sie können auch Conan, einen anderen beliebten C++-Paketmanager, mit CLion verwenden. Das Conan-Plug-in für CLion ist derzeit nicht mit der neuesten Version von CLion kompatibel. Ein Fix ist in Arbeit, aber in der Zwischenzeit können Sie Conan weiterhin mit CLion verwenden, da Conan CLion-kompatible CMake-Dateien ausgibt.
find_package
CLion bietet jetzt Code-Vervollständigung für Pakete von Drittanbietern, die CMake bekannt sind .
Reduzieren Sie die Bauzeit
Dem Feedback der Benutzer zufolge ist die Bauzeit die zweitgrößte Herausforderung , wobei 43 % der Befragten dies als größten Problempunkt bezeichnen. Obwohl CLion keinen Compiler enthält, sondern nur den in der Toolkette konfigurierten Compiler (z. B. GCC oder Clang) aufruft und die Buildzeit nicht direkt beeinflussen kann, können CMake-Ausführungsschritte auch mithilfe der CMake-Analysefunktion von CLion optimiert werden . Die CMake-Profilerstellung trägt dazu bei, die Gesamterstellungszeit Ihres Projekts zu verkürzen, indem sie die zeitaufwändigsten Vorgänge während der CMake-Konfiguration identifiziert und CMake-Skripte bei Bedarf optimiert.
Erstellen Sie eine CI-Pipeline
Laut der Umfrage besteht der dritte große Schwachpunkt darin, kontinuierliche Integrationspipelines (automatisierte Builds, Tests usw.) von Grund auf neu zu erstellen . CLion bietet hierfür viele Tools und verfügt über integrierte Unterstützung für alle gängigen C++-Testframeworks (Google Test, Boost.Test, Catch2, Doctest, CTest). Enthält dedizierte Ausführungs- und Debug-Konfigurationen für Tests, Heftbereichssymbole zum Ausführen oder Debuggen von Tests/Suites/festen Routinen und zum Überprüfen ihres Status, dedizierte Testläufer und Code-Vervollständigung für Test- und feste Routineklassen.
Darüber hinaus gibt es CLion-Plug-ins für TeamCity , JetBrains‘ eigene automatisierte Build-Management- und CI-Tools sowie Plug-ins für andere Continuous-Integration-Lösungen.
Verwalten Sie CMake-Projekte
31 % der Benutzer gaben an, dass ihr Hauptproblem die Verwaltung von CMake-Projekten ist . CMake ist das beliebteste plattformübergreifende Buildsystem für C und C++. CLion bündelt CMake und verfügt über eine umfassende CMake-Integration , wodurch das CMake-Projektmanagement reibungsloser verläuft. CLion ist mit einem leistungsstarken Editor ausgestattet, der über vollständige Syntaxhervorhebung, automatische Vervollständigung und schnelle Dokumentation von CMake-Skripten verfügt; einem integrierten CMake-Debugger; zum Hinzufügen von Konfigurationen und Build-Typen, zum Erstellen von CMake-Zielen und zum Hinzufügen zu diesen Zielen. Integrierte GUI Unterstützung für oder Entfernen von Dateien und Neuladen von CMake-Projekten; Unterstützung für CMake-Voreinstellungen und CMake-Profile; und andere Funktionen.
CMake ist jedoch nicht das einzige von CLion unterstützte Projektmodell. Auch die Verwaltung von Makefiles ist ein Problem, über das Benutzer häufig berichten. Die gute Nachricht ist, dass CLion auch Makefile-Projekte und die Makefile-Sprache unterstützt , was die Verwendung von Makefiles erheblich vereinfacht.
Threads im Code in Echtzeit prüfen,
Probleme mit der Speicher- und Typsicherheit
Mehrere andere von Benutzern gemeldete Hauptprobleme hängen mit der Sicherheit zusammen , darunter Thread-Sicherheit (Rennen, Deadlocks usw.), Speichersicherheit (Grenzsicherheit, Use-After-Free, Speicherlecks usw.) und Typsicherheit . Um diese häufigen Probleme zu identifizieren und zu beheben, stellt CLion Entwicklern eine Vielzahl statischer und dynamischer Code-Analyseoptionen zur Verfügung. Für die statische Analyse bietet CLion viele nützliche Codeinspektionen, Clang-Tidy-Integration und integrierte Datenflussanalyse .
Die Datenflussanalyse (DFA) von CLion kann statisch viele Quellen für undefiniertes Verhalten und potenzielle Schwachstellen identifizieren, wie z. B. Endlosschleifen, Endlosrekursion, fehlende Rückgabeanweisungen, baumelnde Zeiger, potenziell ungültige Iteratoren und Speicherzugriffe außerhalb der Grenzen. DFA kann lokal innerhalb einer einzelnen Funktion oder global über eine gesamte Übersetzungseinheit hinweg eingesetzt werden. Im folgenden Beispiel identifiziert der lokale DFA einen Iterator, der durch einen Aufruf von vector::push_back: ungültig gemacht werden kann.
Im folgenden Beispiel gibt ein globaler DFA über einen Zeiger, der in einer anderen Funktion gelöscht wurde, eine Write-After-Free-Warnung aus:
Für die dynamische Analyse ist CLion vollständig in Valgrind und zahlreiche Sanitizer integriert, wie z. B. AdressSanitizer, LeakSanitizer, ThreadSanitizer, UndefinedBehaviourSanitizer und MemorySanitizer. Außerdem haben wir kürzlich eine bessere Multithread-Debugging-Unterstützung für die Verfolgung von Parallelitätsproblemen hinzugefügt, z. B. parallele Stapelansichten und die Möglichkeit , einzelne Threads während des Debuggens einzufrieren und wieder freizugeben .
Entwicklungsumgebung
Ein weiterer von Benutzern gemeldeter Problempunkt ist die Schwierigkeit, eine Entwicklungsumgebung (Compiler, Build-System usw.) von Grund auf einzurichten. Auch dabei kann CLion helfen: Wie bereits erwähnt, enthält CLion CMake bereits im Paket, verfügt aber auch über einen gebündelten Debugger, gebündeltes MinGW unter Windows, Docker-Unterstützung über ein dediziertes Docker-Plugin und eine Docker-Toolchain sowie weitere Funktionen. Für die Remote-Entwicklung unterstützt CLion JetBrains Gateway , das die Ausführung von CLion auf einem Remote-Host und die Verbindung über einen Thin Client sowie verschiedene andere Möglichkeiten zum Aufbau einer Remote-Entwicklungsumgebung ermöglicht.
Modernisieren Sie Ihren Code
Schließlich ist die Migration von vorhandenem Code auf die neuesten Sprachstandards für 8 % der Benutzer ein großes Problem und für 27 % ein kleineres Problem. Um vorhandenen Code einfach auf modernere C++-Standards zu migrieren, unterstützt CLion Clang-Tidy- Modernisierungsprüfungen direkt in der IDE .
Ursprüngliche englische Autorin dieses Blogs: Anastasia Kazakova
Live-Reservierung | JetBrains GameDev Day 2023
Am 13. Oktober 2023 (Freitag) veranstaltet JetBrains die Veranstaltung GameDev Day 2023 und lädt 11 Experten aus verschiedenen Bereichen ein, Vorträge zu halten, Diskussionen zu veranstalten und professionelle Tipps für die Entwicklung der besten Spiele auszutauschen. Die Veranstaltung befasst sich mit Aspekten des Spieletests, CI/CD, DOTS for Unity und der Apple Vision Pro-Entwicklung.
Wir übertragen diese Veranstaltung zeitgleich auf dem Videokonto und auf Sender B und sorgen für die Simultanübersetzung mit zweisprachigen Untertiteln. Willkommen zum pünktlichen Anschauen!
CLion-bezogene Lektüre
⏬ Klicken Sie auf „Originaltext lesen“, um mehr zu erfahren
Dieser Artikel wurde über das öffentliche WeChat-Konto JetBrains (JetBrainsChina) geteilt.
Bei Verstößen wenden Sie sich bitte zur Löschung an [email protected].
Dieser Artikel ist Teil des „ OSC Source Creation Plan “. Wer liest, ist herzlich eingeladen, mitzumachen und gemeinsam zu teilen.