Vous n'avez même pas besoin d'un makefile. Faire a suffisamment intégré dans les règles pour construire votre fichier source en exécutable du même nom, à moins d'extension.
De lancer l'exécutable vient de construire est la même que l'exécution de tout programme - mais vous aurez le plus souvent besoin de spécifier le chemin vers le fichier exécutable de la coquille recherche seulement ce qui est dans $PATH pour trouver les exécutables, et le plus souvent qui ne comprennent pas le répertoire courant (.).
Afin de l'exécuter, le construit exécutable foo:
./foo
Je ne savais pas que le groupe builtin règles propagées aux objectifs fixés lors de l'invocation de faire. Appris quelque chose de nouveau aujourd'hui =) -bash: marque: command not found "-bash: marque: command not found" <-- Vous devez avoir le développeur de l'outil et les composants supplémentaires téléchargés. "rien à faire pour main.cpp' Ce n'est pas make main.cpp, mais make main.
comme un noob j'ai eu beaucoup de chagrin pour ne pas le "./" lors de l'exécution de Je souhaite que votre commentaire a été le meilleur résultat lors de googler ce genre de chose m'a pris une éternité pour comprendre ça (pour mon mac) - Merci! -bash: gcc: command not found J'ai utilisé "gcc main.cpp -o main."et vous obtenez cette erreur, les symboles non définis pour l'architecture x86_64: "std::__1::locale::use_facet(std::__1::locale::id&) const", ... s'avère que la raison est, gcc par défaut les liens-est de la libc. alors que l'aide de g++ lien avec libstdc++. Donc, utiliser "g++ main.cpp -o main."peut-être mieux. J'ai aussi eu le même problème.
C'est la commande qui fonctionne sur toutes les machines Unix... je l'utilise sur Linux/Ubuntu, mais il fonctionne sous OS X ainsi. Tapez la commande suivante dans Terminal.app.
$ g++-o lab21 iterative.cpp
-o est la lettre O pas de zéro
lab21 sera votre fichier exécutable
iterative.cpp est votre fichier c++
Après l'exécution de cette commande tapez la commande suivante dans le terminal pour exécuter votre programme:
$ ./lab21
C'est ce qui a fonctionné pour moi. J'ai essayé les autres solutions ci-dessus, mais sans succès. Merci! a travaillé pour moi aussi, pas besoin d'installer quoi que ce soit, la solution parfaite.
Sans ./toto n'a pas été exécutée,merci ./foo ne sais pas comment accepter la réponse n'a pas cette pièce importante de commande Mes accepté de répondre à ne pas avoir ce morceau de commande à cause de la question d'origine n'a pas le demander. Il était intitulé "Comment faire pour exécuter C/C++ dans une console Unix/Mac terminal" - qui, je l'interpréter comme "Comment puis-je exécuter le compilateur c/c++". Le titre a par la suite été modifié pour "compiler et exécuter". J'ai mis à jour ma réponse afin de refléter le changement de la question.
De sorte que toute exécutables dans les répertoires listés peut exécuter en tapant simplement leur nom. Par exemple:
chat mytextfile.txt
Cela va /bin/cat et affiche mytextfile.txt pour le terminal.
Pour exécuter une autre commande qui n'est pas dans le fichier exécutable de recherche de chemin, il faut que vous vous qualifiez le chemin vers l'exécutable. Donc, dire que j'avais un exécutable appelé MyProgram dans mon répertoire home sur Mac OS X je peux parfaitement le qualifier de la sorte:
/Utilisateurs/oliver/MyProgram
Si vous êtes dans un endroit qui est près de la programme vous souhaite exécuter vous pouvez vous qualifier le nom d'une partie d'un chemin d'accès. Par exemple, si MyProgram était dans le répertoire /Users/oliver/MyProject je l'ai et j'ai été dans mon répertoire home je peux qualifier le nom de l'exécutable de ce genre, et exécuter:
MyProject/MyProgram
Ou de dire que j'ai été dans le répertoire /Users/oliver/MyProject2 et je voulais exécuter /Users/oliver/MyProject/MyProgram je peux utiliser un chemin relatif, comme cela, pour l'exécuter:
../Monprojet/MyProgram
De même, si je suis dans le même répertoire que MyProgram j'ai besoin d'utiliser un "répertoire courant" chemin d'accès relatif. Le répertoire courant, vous vous trouvez dans la période de caractère, suivi par une barre oblique. Par exemple:
./MyProgram
Pour déterminer quel répertoire vous êtes actuellement dans la pwd commande.
Si vous êtes souvent mettre des programmes en place sur votre disque dur que vous souhaitez exécuter sans avoir à qualifier leurs noms. Par exemple, si vous avez un répertoire "bin" dans votre répertoire d'accueil de régulièrement utilisé des scripts shell d'autres programmes, il peut être judicieux de modifier votre exécutable chemin de recherche.
Cela peut être fait facilement par la création ou de la modification de l'existant .bash_profile fichier dans votre répertoire de base et en ajoutant les lignes:
#!/bin/shexport PATH=$PATH:~/bin
Ici le caractère tilde (~) est utilisé comme un raccourci pour le dossier /Utilisateurs/oliver. Notez également que le hachage bang (#!) la ligne doit être la première ligne du fichier (si elle n'existe pas déjà). Notez également que cette technique nécessite que votre shell de connexion de l'être bash (la valeur par défaut sur Mac OS X et la plupart des distributions Linux). Notez également que si vous voulez que vos programmes installés dans ~/bin être utilisé de préférence pour le système de fichiers exécutables de votre doit réorganiser l'instruction d'exportation comme suit:
export PATH=~/bin:$PATH
Si vous ajoutez des commentaires à partir de 'onebyone.livejournal.com" sur ma propre réponse à propos de la sécurité, cette réponse est complète. Je vous remercie.
Ryan, je suis l'évolution de ce être une réponse au lieu d'un commentaire, car j'ai été trop bref. Faire tout cela dans le "Terminal".
Pour utiliser le compilateur G++, vous avez besoin pour ce faire:
Accédez au répertoire dans lequel vous avez stocké le fichier *.fichier cpp.
cd ~/programs/myprograms/
(le ~ est un raccourci pour votre maison, c'est à dire /Utilisateurs/Ryan/programmes/myprograms/, remplacer à l'emplacement que vous avez effectivement utilisé.)
Compiler
g++ input.cpp -o output.bin (de sortie.bin peut être n'importe quoi avec n'importe quelle extension, vraiment. bin est juste du bon sur unix.)
Il devrait y avoir RIEN retourné en cas de succès, et c'est bon. Généralement, vous obtenez des retours sur les échecs.
Toutefois, si vous tapez ls, vous verrez la liste des fichiers dans le même répertoire. Par exemple, vous pourriez voir les autres dossiers, input.cpp et de sortie.bin
De l'intérieur du répertoire, maintenant l'exécuter avec ./outbut.bin
Merci cela a fonctionné. Auriez-vous par hasard connaissez des tutoriels qui pourrait expliquer ces choses? Comme quoi exactement G++ signifie que le " o " de l'interrupteur est et de tout ce qui pourrait arriver? ajouter un commentaire sur make ne marchera pas car il n'y a pas de makefile. Ryan, vous pouvez taper "man g++" dans le terminal pour obtenir le "man pages" (c'est à dire les manuels, qui, je suppose qu'Apple a intégré). Je n'ai pas vu tous les tutoriels grand bien. Bien que, la page de man g++ peut obtenir assez en profondeur avec CFLAGS et toutes sortes d'avancées options de compilation. Pinailler: "Il devrait y avoir RIEN [imprimé] si elle a réussi, et c'est très bien. Généralement, vous obtenez [sortie] sur les échecs." Il y aura toujours une valeur de retour, 0 en cas de succès, non-0 en cas d'échec. Oui, vous avez raison. J'aurais dit imprimés.
En supposant que le répertoire courant n'est pas dans le chemin, la syntaxe est ./[name of the program].
Par exemple ./a.out
Bon pour vous! Le point et la barre sont là parce que sur de nombreux systèmes, le répertoire courant ("." en Unix termes) ne fait pas partie de la trajectoire parcourue par le shell. Ainsi, en ajoutant qu'il rend explicite ce qui programme que vous souhaitez exécuter.
Ajouter suivantes pour obtenir les meilleurs avertissements, vous ne le regretterez pas. Si vous le pouvez, de compiler des SAGE (avertissement d'erreur)
-Wall-pedantic -Weffc++-Werror
Devrait vraiment être la valeur par défaut. Je suis d'accord, mais ce n'est pas pour de nombreux projets / ppl. Et -Werror tandis que votre à elle.
À compiler en C ou C++, il y a un commandement commun:
make filename
./filename
faire sera de construire votre fichier source dans un fichier exécutable avec le même nom. Mais si vous souhaitez utiliser le mode standard, Vous pouvez utiliser le compilateur gcc pour construire des programmes en C & g++ pour le c++
Utiliser un makefile. Même pour les très petites (= un-fichier) projets, l'effort en vaut probablement la peine parce que vous pouvez avoir plusieurs ensembles de paramètres du compilateur de tester des choses. Le débogage et le déploiement des œuvres beaucoup plus facile de cette façon.
Lire la make manuel, il semble assez long à première vue, mais la plupart des sections, vous pouvez simplement effleurer. Dans l'ensemble, il m'a fallu quelques heures et m'a fait beaucoup plus productif.
Merci, c'est une bonne réponse aussi. J'ai vraiment essayer de faire autant que je peux et c'est aussi une raison pour m'oublier à la syntaxe de "facile".
De l'exécution d'un .C fichier en utilisant le terminal est un processus en deux étapes.
La première étape est de type gcc dans le terminal et la chute de l' .C fichier dans le terminal, puis appuyez sur Entrée:
username$ gcc /Desktop/test.c
Dans la deuxième étape, exécutez la commande suivante:
Aller à l'intérieur de votre répertoire racine (ce qui devrait être ~) et de regarder un fichier nommé .bash_profile. Collez ce code sur une nouvelle ligne:
function run(){eval make $1
eval./$1
}
De redémarrer tous les terminaux que vous avez ouvert. Maintenant, exécutez c++ programme en préfixant avec run:
Si c'est un simple programme source:
où le fichier source est toto.c ou foo.cpp, etc.
Vous n'avez même pas besoin d'un makefile. Faire a suffisamment intégré dans les règles pour construire votre fichier source en exécutable du même nom, à moins d'extension.
De lancer l'exécutable vient de construire est la même que l'exécution de tout programme - mais vous aurez le plus souvent besoin de spécifier le chemin vers le fichier exécutable de la coquille recherche seulement ce qui est dans
$PATH
pour trouver les exécutables, et le plus souvent qui ne comprennent pas le répertoire courant (.
).Afin de l'exécuter, le construit exécutable
foo
:-bash: marque: command not found
"-bash: marque: command not found" <-- Vous devez avoir le développeur de l'outil et les composants supplémentaires téléchargés.
"rien à faire pour main.cpp'
Ce n'est pas
make main.cpp
, maismake main
.OriginalL'auteur camh
Je souhaite que votre commentaire a été le meilleur résultat lors de googler ce genre de chose m'a pris une éternité pour comprendre ça (pour mon mac) - Merci!
-bash: gcc: command not found
J'ai utilisé "gcc main.cpp -o main."et vous obtenez cette erreur, les symboles non définis pour l'architecture x86_64: "std::__1::locale::use_facet(std::__1::locale::id&) const", ... s'avère que la raison est, gcc par défaut les liens-est de la libc. alors que l'aide de g++ lien avec libstdc++. Donc, utiliser "g++ main.cpp -o main."peut-être mieux.
J'ai aussi eu le même problème.
OriginalL'auteur Andrey Neverov
C'est la commande qui fonctionne sur toutes les machines Unix... je l'utilise sur Linux/Ubuntu, mais il fonctionne sous OS X ainsi. Tapez la commande suivante dans Terminal.app.
-o
est la lettre O pas de zérolab21
sera votre fichier exécutableiterative.cpp
est votre fichier c++Après l'exécution de cette commande tapez la commande suivante dans le terminal pour exécuter votre programme:
a travaillé pour moi aussi, pas besoin d'installer quoi que ce soit, la solution parfaite.
OriginalL'auteur Komengem
Deux étapes pour moi:
première:
alors:
./foo
ne sais pas comment accepter la réponse n'a pas cette pièce importante de commandeMes accepté de répondre à ne pas avoir ce morceau de commande à cause de la question d'origine n'a pas le demander. Il était intitulé "Comment faire pour exécuter C/C++ dans une console Unix/Mac terminal" - qui, je l'interpréter comme "Comment puis-je exécuter le compilateur c/c++". Le titre a par la suite été modifié pour "compiler et exécuter". J'ai mis à jour ma réponse afin de refléter le changement de la question.
OriginalL'auteur Victor Augusto
Toutes exécution de l'application dans un Unix (Linux, Mac OS X, AIX, etc.) environnement dépend de l'exécutable chemin de recherche.
Vous pouvez afficher le chemin d'accès dans le terminal avec la commande:
Sur Mac OS X (par défaut) ce qui va afficher la suite du côlon séparés chemin de recherche de:
De sorte que toute exécutables dans les répertoires listés peut exécuter en tapant simplement leur nom. Par exemple:
Cela va
/bin/cat
et affiche mytextfile.txt pour le terminal.Pour exécuter une autre commande qui n'est pas dans le fichier exécutable de recherche de chemin, il faut que vous vous qualifiez le chemin vers l'exécutable. Donc, dire que j'avais un exécutable appelé MyProgram dans mon répertoire home sur Mac OS X je peux parfaitement le qualifier de la sorte:
Si vous êtes dans un endroit qui est près de la programme vous souhaite exécuter vous pouvez vous qualifier le nom d'une partie d'un chemin d'accès. Par exemple, si
MyProgram
était dans le répertoire/Users/oliver/MyProject
je l'ai et j'ai été dans mon répertoire home je peux qualifier le nom de l'exécutable de ce genre, et exécuter:Ou de dire que j'ai été dans le répertoire
/Users/oliver/MyProject2
et je voulais exécuter/Users/oliver/MyProject/MyProgram
je peux utiliser un chemin relatif, comme cela, pour l'exécuter:De même, si je suis dans le même répertoire que
MyProgram
j'ai besoin d'utiliser un "répertoire courant" chemin d'accès relatif. Le répertoire courant, vous vous trouvez dans la période de caractère, suivi par une barre oblique. Par exemple:Pour déterminer quel répertoire vous êtes actuellement dans la
pwd
commande.Si vous êtes souvent mettre des programmes en place sur votre disque dur que vous souhaitez exécuter sans avoir à qualifier leurs noms. Par exemple, si vous avez un répertoire "bin" dans votre répertoire d'accueil de régulièrement utilisé des scripts shell d'autres programmes, il peut être judicieux de modifier votre exécutable chemin de recherche.
Cela peut être fait facilement par la création ou de la modification de l'existant
.bash_profile
fichier dans votre répertoire de base et en ajoutant les lignes:Ici le caractère tilde (~) est utilisé comme un raccourci pour le dossier /Utilisateurs/oliver. Notez également que le hachage bang (#!) la ligne doit être la première ligne du fichier (si elle n'existe pas déjà). Notez également que cette technique nécessite que votre shell de connexion de l'être bash (la valeur par défaut sur Mac OS X et la plupart des distributions Linux). Notez également que si vous voulez que vos programmes installés dans
~/bin
être utilisé de préférence pour le système de fichiers exécutables de votre doit réorganiser l'instruction d'exportation comme suit:OriginalL'auteur orj
Ryan, je suis l'évolution de ce être une réponse au lieu d'un commentaire, car j'ai été trop bref. Faire tout cela dans le "Terminal".
Pour utiliser le compilateur G++, vous avez besoin pour ce faire:
Accédez au répertoire dans lequel vous avez stocké le fichier *.fichier cpp.
cd ~/programs/myprograms/
(le ~ est un raccourci pour votre maison, c'est à dire /Utilisateurs/Ryan/programmes/myprograms/, remplacer à l'emplacement que vous avez effectivement utilisé.)
Compiler
g++ input.cpp -o output.bin
(de sortie.bin peut être n'importe quoi avec n'importe quelle extension, vraiment. bin est juste du bon sur unix.)Il devrait y avoir RIEN retourné en cas de succès, et c'est bon. Généralement, vous obtenez des retours sur les échecs.
Toutefois, si vous tapez
ls
, vous verrez la liste des fichiers dans le même répertoire. Par exemple, vous pourriez voir les autres dossiers, input.cpp et de sortie.binDe l'intérieur du répertoire, maintenant l'exécuter avec
./outbut.bin
ajouter un commentaire sur
make
ne marchera pas car il n'y a pas de makefile.Ryan, vous pouvez taper "man g++" dans le terminal pour obtenir le "man pages" (c'est à dire les manuels, qui, je suppose qu'Apple a intégré). Je n'ai pas vu tous les tutoriels grand bien. Bien que, la page de man g++ peut obtenir assez en profondeur avec CFLAGS et toutes sortes d'avancées options de compilation.
Pinailler: "Il devrait y avoir RIEN [imprimé] si elle a réussi, et c'est très bien. Généralement, vous obtenez [sortie] sur les échecs." Il y aura toujours une valeur de retour, 0 en cas de succès, non-0 en cas d'échec.
Oui, vous avez raison. J'aurais dit imprimés.
OriginalL'auteur nerdwaller
En supposant que le répertoire courant n'est pas dans le chemin, la syntaxe est
./[name of the program]
.Par exemple
./a.out
OriginalL'auteur P-A
Ajouter suivantes pour obtenir les meilleurs avertissements, vous ne le regretterez pas. Si vous le pouvez, de compiler des SAGE (avertissement d'erreur)
Je suis d'accord, mais ce n'est pas pour de nombreux projets / ppl.
Et -Werror tandis que votre à elle.
OriginalL'auteur Nazgob
Un compact façon de faire qui pourrait être:
Agréable d'avoir un one-liner de sorte que vous pouvez ré-exécuter l'exécutable de nouveau facilement.
OriginalL'auteur markthethomas
À compiler en C ou C++, il y a un commandement commun:
make filename
./filename
faire sera de construire votre fichier source dans un fichier exécutable avec le même nom. Mais si vous souhaitez utiliser le mode standard, Vous pouvez utiliser le compilateur gcc pour construire des programmes en C & g++ pour le c++
Pour C:
Pour Le C++:
OriginalL'auteur Yogesh Nogia
Utiliser un
makefile
. Même pour les très petites (= un-fichier) projets, l'effort en vaut probablement la peine parce que vous pouvez avoir plusieurs ensembles de paramètres du compilateur de tester des choses. Le débogage et le déploiement des œuvres beaucoup plus facile de cette façon.Lire la
make
manuel, il semble assez long à première vue, mais la plupart des sections, vous pouvez simplement effleurer. Dans l'ensemble, il m'a fallu quelques heures et m'a fait beaucoup plus productif.OriginalL'auteur Konrad Rudolph
J'ai trouvé ce lien avec les directions:
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/
Fondamentalement, vous faites:
gcc hello.c -o a.out
? Qui fait la même chose quegcc hello.c
.OriginalL'auteur Srini Kadamati
il suffit d'entrer dans le répertoire dans lequel votre c/cpp fichier.
pour la compilation et l'exécution du code c.
pour la compilation et l'exécution de code c++.
"$" est par défaut de mac terminal symbole
OriginalL'auteur Shiv Prakash
De l'exécution d'un .C fichier en utilisant le terminal est un processus en deux étapes.
La première étape est de type gcc dans le terminal et la chute de l' .C fichier dans le terminal, puis appuyez sur Entrée:
Dans la deuxième étape, exécutez la commande suivante:
OriginalL'auteur Himanshu Mahajan
Aller à l'intérieur de votre répertoire racine (ce qui devrait être
~
) et de regarder un fichier nommé.bash_profile
. Collez ce code sur une nouvelle ligne:De redémarrer tous les terminaux que vous avez ouvert. Maintenant, exécutez
c++
programme en préfixant avecrun
:OriginalL'auteur Ken Mueller