Wie kompilieren und ausführen von C/C++ in einer Unix-Konsole/Mac terminal?
Frage
Wie kann ich kompilieren/ausführen von C-oder C++ in Unix-Konsole oder einem Mac-terminal?
(Ich weiß es, vergiss es, und relearn Sie wieder.Zeit, es aufzuschreiben.)
Lösung
Wenn es ein einfaches Single-Source-Programm:
make foo
, wo die Quelldatei foo.c oder foo.cpp ist, etc.
Sie nicht sogar eine Make-Datei benötigen. Machen Sie hat genug integrierten Regeln der Quelldatei in eine ausführbare Datei mit dem gleichen Namen zu bauen, minus Erweiterung.
die ausführbaren Lauf gerade gebaut ist das gleiche wie jedes Programm läuft - aber Sie werden am häufigsten benötigen Sie den Pfad zu der ausführbaren Datei als Shell angeben, nur suchen, was in $PATH
ist ausführbare Dateien zu finden, und am häufigsten, die nicht enthält das aktuelle Verzeichnis (.
).
So die integrierte ausführbare foo
auszuführen:
./foo
Andere Tipps
gcc main.cpp -o main.out
./main.out
Dies ist der Befehl, der auf allen Unix-Rechnern funktioniert ... Ich benutze es auf Linux / Ubuntu, aber es funktioniert auch in OS X. Geben Sie den folgenden Befehl in Terminal.app .
$ g++ -o lab21 iterative.cpp
-o
ist der Buchstabe O nicht Null
lab21
wird Ihre ausführbare Datei
iterative.cpp
ist Ihre c ++ Datei
Nachdem Sie führen das Kommando folgend im Terminal geben Sie Ihr Programm auszuführen:
$ ./lab21
Zwei Schritte für mich:
zuerst:
make foo
dann:
./foo
Alle Anwendung, die Ausführung in einem Unix (Linux, Mac OS X, AIX, etc.) Umwelt hängt von den ausführbaren Pfad suchen.
Sie können diese Anzeige Pfad im terminal mit diesem Befehl:
echo $PATH
Auf Mac OS X (standardmäßig), wird das display die folgenden Doppelpunkt getrennt-Suchpfad:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin
Also jede ausführbare Datei in den aufgeführten Verzeichnissen kann durch laufen einfach durch Eingabe in Ihrem Namen.Zum Beispiel:
cat mytextfile.txt
Dieser läuft /bin/cat
und zeigt mytextfile.txt an das terminal.
Zum ausführen einer anderen Befehl, der nicht in das executable search path erfordert, dass Sie qualifiziert sind, den Pfad zu der ausführbaren Datei.So sagen, ich hatte eine ausführbare Datei namens MyProgram in meinem home-Verzeichnis auf dem Mac OS X-kann ich voll qualifizieren es zum Beispiel so:
/Users/oliver/MyProgram
Wenn Sie in eine Lage, in der Nähe des Programm, das Sie sich gewünscht ausführen, Sie können sich den Namen mit einer partiellen Pfad.Zum Beispiel, wenn MyProgram
wurde in das Verzeichnis /Users/oliver/MyProject
Ich und ich war in meinem home-Verzeichnis kann ich qualifizieren den Namen der ausführbaren Datei wie diese, und haben es ausführen:
MyProject/MyProgram
Oder sagen, ich war in das Verzeichnis /Users/oliver/MyProject2
und ich wollte ausführen /Users/oliver/MyProject/MyProgram
Kann ich einen relativen Pfad verwenden, wie diese auszuführen:
../MyProject/MyProgram
Ebenso, wenn ich bin in das gleiche Verzeichnis wie die MyProgram
Ich muss eine "aktuelle Verzeichnis" relativen Pfad.Das aktuelle Verzeichnis, das Sie in der Zeit-Zeichen, gefolgt von einem Schrägstrich.Zum Beispiel:
./MyProgram
Um zu bestimmen, in welchem Verzeichnis Sie sind derzeit in verwenden pwd
Befehl.
Wenn Sie Häufig setzen die Programme an einem Ort auf Ihrer Festplatte, die Sie wollen, zu laufen, ohne Ihren Namen zu qualifizieren.Zum Beispiel, wenn Sie eine "bin" - Verzeichnis in Ihrem home-Verzeichnis für regelmäßig verwendete shell-Skripts, anderen Programmen kann es klug sein, ändern Sie Ihre executable search path.
Dies kann nicht leicht entweder durch das erstellen oder Bearbeiten der vorhandenen .bash_profile
Datei in Ihrem home-Verzeichnis und das hinzufügen der Zeilen:
#!/bin/sh
export PATH=$PATH:~/bin
Hier ist die tilde (~) wird verwendet als Abkürzung für /Users/oliver.Beachten Sie auch, dass die hash-bang (#!) Zeile muss die erste Zeile der Datei (wenn es nicht bereits vorhanden ist).Beachten Sie auch, dass diese Technik erfordert, dass Ihre login-shell bash (Standard auf Mac OS X und die meisten Linux-Distributionen).Beachten Sie auch, dass, wenn Sie möchten, dass Ihre installierten Programme in ~/bin
werden bevorzugt eingesetzt, um ausführbare Dateien Ihren sollten Sie die Reihenfolge der export-Anweisung wie folgt:
export PATH=~/bin:$PATH
Ryan, Ich ändere dies eine Antwort statt einen Kommentar zu sein, da es ich war zu kurz erscheint. Haben all dies in "Terminal".
G ++ Compiler verwenden zu können, müssen Sie dies tun:
-
Navigieren Sie zu dem Verzeichnis, in dem Sie die * CPP-Datei gespeichert.
cd ~/programs/myprograms/
(Das ~ ist eine Abkürzung für zu Hause, das heißt / Users / Ryan / Programme / MyPrograms / Ersetzen mit dem Ort, den Sie tatsächlich verwendet wird.) -
Übersetzen es
g++ input.cpp -o output.bin
(output.bin kann alles mit einer Verlängerung, wirklich. Ist auf Unix gerade üblich ist.)Es soll nichts zurück, wenn es erfolgreich ist, und das ist OK . Im Allgemeinen Sie kehrt auf Ausfälle erhalten.
Wenn Sie jedoch
ls
eingeben, werden Sie die Liste der Dateien im selben Verzeichnis sehen. Zum Beispiel würden Sie die anderen Ordner, input.cpp und output.bin siehe
-
Aus dem Innern des Verzeichnis, führt nun mit
./outbut.bin
das aktuelle Verzeichnis Unter der Annahme, nicht im Weg, die Syntax ist ./[name of the program]
.
Zum Beispiel ./a.out
Fügen Sie am besten auf Warnungen folgenden bekommen, Sie werden es nicht bereuen. Wenn Sie können, kompilieren WISE (Warnung Fehler)
- Wall -pedantic -Weffc++ -Werror
Eine kompakte Art und Weise zu tun, um zu gehen, dass sein könnte:
make foo && ./$_
Nizza einen Einzeiler haben, so können Sie einfach erneut ausführen ausführbare Datei wieder leicht.
C oder C ++ Programme zu kompilieren, gibt es einen gemeinsamen Befehl:
-
make filename
-
./filename
make wird die Quelldatei in eine ausführbare Datei mit dem gleichen Namen bauen. Aber wenn Sie die Standardmethode verwenden möchten, Sie könnten den gcc-Compiler verwenden, um C-Programme & g ++ für C ++
zu bauenFür C:
gcc filename.c
./a.out
Für C ++:
g++ filename.cpp
./a.out
Verwenden Sie einen makefile
. Auch für sehr klein (= one-Datei) Projekte, ist die Anstrengung wohl wert, weil Sie mehrere Sätze von Compiler-Einstellungen haben können Dinge zu testen. Debugging und Bereitstellung funktioniert viel einfacher auf diese Weise.
Lesen Sie die make
Handbuch , es zunächst recht lang scheint Blick aber die meisten Abschnitte können Sie nur überfliegen. Alles in allem hat mir ein paar Stunden und machte mich viel produktiver.
Ich fand diesen Link mit Anweisungen:
Um einen CPP-Quellcode von Mac-Terminal benötigt man die folgenden kompilieren und ausführen zu tun:
- Wenn der Pfad der CPP-Datei somepath / filename.cpp ist, zuerst das Verzeichnis mit Pfad somepath gehen
- Zum Kompilieren filename.cpp, geben Sie c ++ filename.cpp -o filename
- Um das Programm zu starten, geben ./filename
eine .C-Datei Ausführen des Terminal ist ein zweistufiger Prozess. Der erste Schritt ist gcc im Terminal eingeben und die .C-Datei an das Terminal fallen, und drücken Sie die Enter :
username$ gcc /Desktop/test.c
Im zweiten Schritt führen Sie den folgenden Befehl ein:
username$ ~/a.out