ReadyDev
... # 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 ...