... # Ouvrir le menu des projets Fichier > Nouveau > Projet ... # Définir le type de projet Tous les langages C++ > Toutes les plateformes > Windows Tous les type de projet > Console ... # Sélectionner le type de projet Projet Vide > Suivant ... # Définir les informations sur le projet Nom du projet > rdvcpp Emplacement > [chemin/repertoire/projet] Solution > Créer une nouvelle solution Nom de la solution > rdvcpp ... Créer ...
... #include <iostream> int main(int argc, char** argv) { std::cout << "[rdvcpp] Demarrage du projet C++..." << std::endl; return 0; } ...
... Déboguer > Exécuter sans débogage ...
... # Ouvrir le menu des projets Fichier > Nouveau > Projet ... # Définir le type de projet Tous les langages C++ > Toutes les plateformes > Windows Tous les type de projet > Console ... # Sélectionner le type de projet Application Console > Suivant ... # Définir les informations sur le projet Nom du projet > rdvcpp Emplacement > [chemin/repertoire/projet] Solution > Créer une nouvelle solution Nom de la solution > rdvcpp ... Créer ...
... #include <iostream> int main(int argc, char** argv) { std::cout << "Bonjour tout le monde." << std::endl; return 0; } ...
... Déboguer > Exécuter sans débogage ...
... # Ouvrir le menu des projets Fichier > Nouveau > Projet ... # Définir le type de projet Tous les langages C++ > Toutes les plateformes > Windows Tous les type de projet > Console ... # Sélectionner le type de projet Projet CMake > Suivant ... # Définir les informations sur le projet Nom du projet > rdvcpp Emplacement > [chemin/repertoire/projet] Solution > Créer une nouvelle solution Nom de la solution > rdvcpp ... Créer ...
... #include "headers.h" int main(int argc, char** argv) { std::cout << "Bonjour tout le monde." << std::endl; return 0; } ...
... #pragma once #include <iostream> ...
... cmake_minimum_required (VERSION 3.8) if (POLICY CMP0141) cmake_policy(SET CMP0141 NEW) set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<IF:$<AND:$<C_COMPILER_ID:MSVC>,$<CXX_COMPILER_ID:MSVC>>,$<$<CONFIG:Debug,RelWithDebInfo>:EditAndContinue>,$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>>") endif() project ("rdvcpp") add_subdirectory ("src") ...
... add_executable (rdvcpp "main.cpp" "headers.h") if (CMAKE_VERSION VERSION_GREATER 3.12) set_property(TARGET rdvcpp PROPERTY CXX_STANDARD 20) endif() ...
... Déboguer > Exécuter sans débogage ...
... # Ouvrir le menu des éléments [nom-projet] > Fichiers sources > Clic droit > Nouvel élément ... # Sélectionner le fichier C++ Installé > Visual C++ > Fichier C++ (.cpp) Nom > [nom-fichier].cpp Emplacement > [/chemin/repertoire/projet] Ajouter ...
... # Renommer un fichier sous Visual Studio [nom-projet] > Fichiers sources > [nom-fichier].cpp > Clic droit > Renommer > [nom-fichier-new].cpp ...
... # Renommer un répertoire sous Visual Studio [nom-projet] > [nom-repertoire] > Clic droit > Renommer > [nom-repertoire-new] ...
... # Remplacer les tabulations par des espaces Edition > Avancé > Définir la mise en retrait > Espaces ...
... # Ouvrir les propriétés du projet [nom-projet] > Clic droit > Propriétés # Ajouter un symbole de préprocesseur Propriétés de configuration > C/C++ > Préprocesseur Définitions de préprocesseur > Modifier Ajouter > DEUBU_ON OK > OK ...
... # Ouvrir les propriétés du projet [nom-projet] > Clic droit > Propriétés # Définir les arguments en ligne Propriétés de configuration > Débogage Arguments de débogage > Modifier Ajouter > un deux trois quatre OK > OK ...
... # Ouvrir la configuration du lanceur Déboguer > Paramètres de débogage et de lancement pour [nom-projet] ... # Cela ouvre le lanceur launch.vs.json ...
... { "version": "0.2.1", "defaults": {}, "configurations": [ { "type": "default", "project": "CMakeLists.txt", ..., "args": ["un", "deux", "trois", "quatre"] } ] } ...
... # Sélectionner un élément de démarrage Sélectionner un élément de démarrage > [nom-projet] (/chemin/executable) ...
... # Ouvrir les propriétés du projet [nom-projet] > Clic droit > Propriétés # Créer le fichier d'entête précompilé Propriétés de configuration > C/C++ > En-têtes précompilés En-tête précompilé > Création (/Yc) Fichier d'en-tête précompilé > rdv_pch.h Fichier d'en-tête précompilé de sortie > $(IntDir)$(TargetName).pch OK > OK ...
... # Cela génère le fichier (.pch) > x64\Debug\rdvcpp.pch ...
... Bouton Windows > Rechercher > x64 Native Tools Command Prompt for VS 2022 ...
cl /? ... # Appuyer sur la touche (Entrée) pour continuer afficher le menu d'aide ... # Appuyer sur la touche (Ctrl + C) pour quitter le menu d'aide ...
... #include <iostream> int main(int argc, char **argv) { std::cout << "Bonjour tout le monde" << std::endl; return 0 ; } ...
... # Compiler le projet sans le fichier exécutable cl /EHsc main.cpp ... # Cela génère le fichier objet (main.obj) # et le fichier exécutable (main.exe) ...
... main.exe ...
... # Compiler le projet avec le fichier exécutable cl /EHsc /Fe:rdvcpp main.cpp ... # Cela génère le fichier objet (main.obj) # et le fichier exécutable (rdvcpp.exe) ...
... rdvcpp.exe ...
... /c Compiler uniquement, ne pas lier. ... /D<symbole> Définit la constante ou la macro <symbole>. ... /EHsc Active la gestion des exceptions C++ mais indique que les exceptions des fonctions externes "C" (généralement les fonctions du système d'exploitation) ne sont pas gérées. ... /Fe:<fichier> Indique le nom du fichier exécutable vers lequel établir le lien. ... /Fo:<fichier> Indique le nom du fichier objet vers lequel compiler. ... /I <dossier> Indique le nom d'un dossier à utiliser pour rechercher les fichiers d'inclusion. ... /link<options-du-lien> Transmettez les <options-du-lien> au lien. Cela doit apparaître après le nom du fichier source et tous les commutateurs destinés au compilateur. ... /Tp <fichier> Compile <fichier> en tant que fichier C++, même s'il n'a pas .cpp ou .cxx comme extension de fichier. ... /U<symbole> Supprime la macro ou la constante <symbole> précédemment définie. ... /Zi Active les informations de débogage. ... /Zs Syntaxe uniquement, ne compile pas et ne lie pas. ...
... #include <iostream> int main(int argc, char **argv) { std::cout << "Bonjour tout le monde" << std::endl; return 99; } ...
... rdvcpp.exe ...
... echo %errorlevel% ...
... #include <iostream> int main(int argc, char **argv) { std::cout << "NUMBER : " << NUMBER << std::endl; return 0; } ...
... cl /EHsc /Fe:rdvcpp /DNUMBER=4 main.cpp ...
... rdvcpp.exe ...
... #include <iostream> #ifdef DEBUG_ON #define MESSAGE(ARGC, ARGV) \ do \ { \ std::cout << "argc : " << ARGC << std::endl; \ for (int i = 0; i < ARGC; i++) \ { \ std::cout << "argv[" << i << "] : " << ARGV[i] << std::endl; \ } \ } while (false) #else #define MESSAGE #endif int main(int argc, char **argv) { MESSAGE(argc, argv); return 0; } ...
... cl /EHsc /Fe:rdvcpp main.cpp ...
... rdvcpp.exe un deux trois quatre ...
... cl /EHsc /Fe:rdvcpp /DDEBUG_ON main.cpp ...
... rdvcpp.exe un deux trois quatre ...
... #include "rdv_pch.h" int main(int argc, char **argv) { std::cout << "Bonjour tout le monde" << std::endl; return 0; } ...
... #pragma once #include <iostream> #include <string> #include <ctime> ...
... #include "rdv_pch.h" ...
... # Cela génère le fichier (.obj) > rdv_pch.obj # Cela génère le fichier (.pch) > rdv_pch.pch ...
... cl /EHsc /Fe:rdvcpp main.cpp /Yurdv_pch.h /Fprdv_pch.pch /linkrdv_pch.obj ...
... rdvcpp.exe ...