Créer une structure de répertoire de projet, y compris cMakelists.txt, src / et inclure /; 2. écrivez CMakelists.txt, spécifiez la version CMake, le nom du projet, la norme C et ajouter des fichiers exécutables; 3. Utilisez Mkdir Build pour entrer dans le répertoire et exécuter Cmake .. et cmake --build. pour la compilation; 4. Ajoutez plusieurs fichiers source via add_execuable et utilisez Target_include_Directories pour inclure le chemin du fichier d'en-tête; 5. Utilisez Find_package pour trouver des bibliothèques externes et lier avec Target_Link_Library; 6. Activer les avertissements du compilateur via Target_Compile_Options et utilisez -dcmake_build_type = débogage pour générer des versions de débogage. Une fois le processus complet terminé, le fichier exécutable peut être généré dans le répertoire de build et le projet peut être progressivement étendu au besoin.
La configuration d'un projet C avec CMake est simple une fois que vous comprenez la structure de base et le flux de travail. Voici comment le faire étape par étape pour un projet typique.

1. Structure du dossier du projet
Commencez par organiser votre projet avec une disposition du répertoire propre. Une structure commune ressemble à ceci:
my_cpp_project / ├fiquesLististes.txt ├fiques │ └fique └til inclut / └fiques (vos fichiers d'en-tête)
Vous pouvez également ajouter des sous-répertoires plus tard pour les bibliothèques ou les tests.

2. écrivez les cmakelists.txt
Le fichier CMakeLists.txt
est le c?ur de votre configuration CMake. Voici un exemple minimum pour un exécutable simple:
# Spécifiez la version Cmake minimum requise cmake_minimum_required (version 3.14) # Définir le nom et la langue du projet Projet (MyCPPProject Languages ??CXX) # Set C Standard (par exemple, C 17) set (cmake_cxx_standard 17) set (cmake_cxx_standard_required on) # Ajouter un exécutable: nommez "App", construit à partir du fichier source add_execuable (app src / main.cpp)
-
cmake_minimum_required()
garantit que les utilisateurs ont une version compatible CMake. -
project()
définit le nom du projet et indique à Cmake que vous utilisez c. -
set(CMAKE_CXX_STANDARD ...)
applique une norme C spécifique. -
add_executable()
définit un exécutable cible à partir de vos fichiers source.
3. Construisez le projet
CMake utilise un motif de construction hors de source (recommandé). Créez un répertoire de construction et exécutez CMake à partir de là:

construction mkdir build cmake .. CMake --Build.
Cela génère des fichiers de construction spécifiques à la plate-forme (MakeFiles sur Unix, Visual Studio Files sur Windows) et compile votre code.
Après la construction, vous trouverez l'exécutable (par exemple, app
ou app.exe
) dans le répertoire de construction.
4. Ajouter plus de fichiers source et d'en-têtes
Si vous avez plusieurs fichiers .cpp
:
add_execuable (application src / main.cpp src / helper.cpp src / utils.cpp )
Pour inclure les fichiers d'en-tête du répertoire include/
:
Target_include_Directories (App privé $ {cmake_current_source_dir} / include)
Cela indique au compilateur de regarder dans le dossier include/
lors de la compilation de la cible app
.
5. Bibliothèques de liens (facultatif)
Si vous utilisez des bibliothèques externes (par exemple, boost, opencv), vous pouvez les lier comme ceci:
find_package (opencv requis) Target_Link_Library (App privé $ {opencv_libs})
Pour les bibliothèques statiques ou partagées, vous avez construit vous-même, utilisez add_library()
et liez avec target_link_libraries()
.
6. Activer les avertissements et les constructions de débogage
Améliorer la qualité du code en permettant des avertissements du compilateur:
Target_Compile_Options (App Private -Wall -Wextra)
Et construire en mode débogage pour un meilleur débogage:
cmake -dcmake_build_type = débogage ..
Autres types de build communs: Release
, RelWithDebInfo
, MinSizeRel
.
Ce sont les bases. Au fur et à mesure que votre projet se développe, vous pouvez diviser CMakeLists.txt
en sous-répertoires, créer des modules réutilisables ou utiliser des cibles CMake modernes pour une meilleure encapsulation.
Fondamentalement, commencez petit: écrivez un CMakeLists.txt
simples.txt, construisez hors de la source et développez-vous au besoin.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Installac compiler likeg usingpackageManagersordevelopmentToolsDenpeningSontheos.2.writeac programme etVeitwitha.cpppextension.3.compilethetrogramusingg hello.cpp-ohelotogenerateanexecuable.4

L'allocateur personnalisé peut être utilisé pour contr?ler le comportement d'allocation de mémoire des conteneurs C. 1. Le journal de journalisation dans l'exemple implémente la journalisation de l'opération de mémoire en surchargeant l'allocation, la transmission, la construction et la détruire des méthodes; 2. L'allocateur doit définir des modèles Value_Type et Rebind pour répondre aux exigences de conversion du type de conteneur STL; 3. L'allocateur déclenche la sortie du journal pendant la construction et la copie, ce qui est pratique pour suivre le cycle de vie; 4. Les applications réelles incluent des pools de mémoire, de la mémoire partagée, des outils de débogage et des systèmes intégrés; 5. Depuis C 17, Construct and Destroy peut être traité par STD :: ALLOCATOR_TRAITS par défaut

Utilisez la fonction STD :: System () pour exécuter les commandes système, qui doivent inclure des fichiers d'en-tête et passer dans des commandes de cha?ne de style C, telles que STD :: System ("LS-L"), et la valeur de retour est -1, ce qui signifie que le processeur de commande n'est pas disponible.

Créer une structure de répertoire de projet, y compris cMakelists.txt, src / et inclure /; 2. écrivez CMakelists.txt, spécifiez la version CMake, le nom du projet, la norme C et ajouter des fichiers exécutables; 3. Utilisez mkdirbuild pour entrer dans le répertoire et exécuter cmake .. et cmake - build. pour la compilation; 4. Ajoutez plusieurs fichiers source via add_execuable et utilisez Target_include_Directories pour inclure le chemin du fichier d'en-tête; 5. Utilisez Find_package pour trouver des bibliothèques externes et lier avec Target_Link_Library; 6.

La pile de C est un adaptateur de conteneur dans STL. Il suit le principe du retour à l'abri et doit inclure des fichiers d'en-tête; Ajouter des éléments en poussant, POP supprime l'élément supérieur et accède au haut du haut de la pile. Avant l'opération, vérifiez s'il est vide, qui est souvent utilisé dans des scénarios tels que l'évaluation de l'expression et le retour de retour.

TheAutokeyWordletsThecompilerDeducevariaBeTypeSfrominitialisers, réduisant la surbosité et destiné à ma?triser.

La réponse est de définir une classe qui contient les alias et les opérations de type nécessaire. Tout d'abord, définissez la valeur_type, référence, pointeur, différence_type et iterator_category, puis implémentez les opérations de déréférence, d'incrément et de comparaison. Enfin, fournissez des méthodes begin () et end () dans le conteneur pour renvoyer l'instance itérateur, ce qui le rend compatible avec les algorithmes STL et la plage pour les boucles.

AstaticvariableInc conserve la valeur de l'entreprise entre la fonctionnalités et les étatsinitializedEnce.2
