Je suis nouveau sur Linux. J'utilise Ubuntu 11.04 et je ne sais pas comment compiler et exécuter un programme C++. J'ai besoin de connaître les commandes pour Compiler y Exécuter un programme C++ sous Linux.
Réponses
Trop de publicités?Pour compiler votre code c++, utilisez :
g++ foo.cpp
foo.cpp dans l'exemple est le nom du programme à compiler.
Cela produira un exécutable dans le même répertoire appelé a.out
que vous pouvez exécuter en tapant ceci dans votre terminal :
./a.out
g++ devrait déjà être dans votre $PATH, donc vous n'avez pas besoin d'appeler /usr/bin/g++
explicitement, mais vous pouvez utiliser cette dernière dans tous les cas.
foo.cpp
doit être dans le même répertoire que celui à partir duquel vous exécutez la commande. En cas de doute, vous pouvez vous assurer que vous êtes dans le même répertoire en tapant ls foo.cpp
o head foo.cpp
(si vous avez besoin de vérifier que vous travaillez avec la bonne foo
.)
Comme noté par @con-f-use, le compilateur rendra généralement ce fichier exécutable, mais si ce n'est pas le cas, vous pouvez le faire vous-même (donc la commande à exécuter, ./a.out
ou équivalent, fonctionnera) :
chmod +x ./a.out
Pour spécifier le nom du fichier de sortie compilé, afin qu'il ne soit pas nommé a.out
utiliser -o
avec votre commande g++.
Par exemple
g++ -o output foo.cpp
Cela compilera foo.cpp
dans le fichier binaire nommé output
et vous pouvez taper ./output
pour exécuter le code compilé.
Je fais deux hypothèses ici :
- Vous avez déjà un fichier source/programme C++ prêt à être construit.
- Vous avez mis en place un système de construction sur votre ordinateur.
La façon la plus simple de compiler un programme C++ sur Ubuntu, ou toute autre distro Linux d'ailleurs, est de taper
g++ main.cpp -o main
- g++ est l'invocation du composant C++ de CCG le compilateur de facto pour C/C++ et toute une série d'autres langages sur la plate-forme Linux. C'est actuellement le seul compilateur capable de compiler le noyau Linux.
- main.cpp est le fichier source c++ que vous souhaitez compiler.
-
-o main spécifie le nom du fichier de sortie que vous souhaitez créer une fois que la source est compilée. Le fichier source cible et le fichier de sortie cible peuvent être inversés si vous le souhaitez, ainsi
g++ -o main main.cpp
est également valable. - Pour ensuite exécuter ce programme, vous devez faire ./main dans le terminal.
Les commandes ci-dessus supposent que vous vous trouvez déjà à l'emplacement des fichiers sources, mais le fichier source et le fichier de sortie cible peuvent également être spécifiés sous forme de répertoire. Par exemple
g++ ~/Desktop/main.cpp -o ~/Projects/main
compilera un fichier source C++ situé sur votre bureau et placera le binaire exécutable dans un répertoire de type Projects
dans votre répertoire personnel. Pour lancer cet exécutable, exécutez ./Projects/main
.
C'est ainsi que j'aime compiler avec g++.
$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp
-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the
name of our source code file
-p: Generate extra code to write profile information suitable for the analysis program prof
Vous avez besoin de g++, car gcc ne peut pas compiler le fichier cpp facilement.
Vous devez également apprendre vim ou emacs pour écrire du code C.
Essayez ceci sur votre terminal :
Tapez un programme de test et sauvegardez-le :
$vim hello.cc
Compiler hello.cc
avec g++ :
$g++ hello.cc -o hello
Exécutez-le :
$./hello
Ici, le ./
signifie que le fichier exe se trouve sous le répertoire courant.
g++
est un frontal pour gcc
(GNU Compiler Collection) avec quelques macros c++ prédéfinies et différentes options/flags par défaut.
compiler du code c++ avec gcc
est pratique lorsque g++
n'est pas disponible pour un certain nombre de raisons ,en fait il s'agit juste de faire un lien vers la librairie c++ -lstdc++
et en informant gcc de traiter l'entrée comme du code c++ (soit en utilisant une balise .C
ou de forcer la langue avec -x
)
autres suffixes de noms de fichiers c++ valides : <code>.cc</code> , <code>.cp</code> , <code>.cxx</code> , <code>.cpp</code> , <code>.CPP</code> , <code>.c++</code>
exemple :
gcc cpp_code.C -lstdc++
l'extension en majuscules ( <code>.C</code> ) est important pour que gcc sache qu'il s'agit d'un fichier c++.
ou en spécifiant explicitement la langue d'entrée :
gcc -x c++ cpp_code.txt -lstdc++
l'extension peut être n'importe quoi, ou même rien
par défaut, le résultat (après une compilation réussie) est un fichier de type a.out
qui peut être exécuté avec ./a.out