177 Stimmen

Wie kann ich C/C++-Code in einer Unix-Konsole oder einem Mac-Terminal kompilieren und ausführen?

Wie kann ich C- oder C++-Code in einer Unix-Konsole oder einem Mac-Terminal kompilieren/ausführen?

235voto

camh Punkte 38167

Wenn es sich um ein einfaches Single-Source-Programm handelt,

make foo

wo die Quelldatei lautet foo.c , foo.cpp usw., brauchen Sie nicht einmal ein Makefile. Make hat genug eingebaute Regeln, um Ihre Quelldatei in eine ausführbare Datei mit demselben Namen zu verwandeln, ohne die Erweiterung.

Das Ausführen der soeben erstellten ausführbaren Datei ist dasselbe wie das Ausführen eines beliebigen Programms - allerdings müssen Sie in den meisten Fällen den Pfad zur ausführbaren Datei angeben, da die Shell nur das sucht, was sich in $PATH um ausführbare Dateien zu finden, und das schließt in den meisten Fällen nicht das aktuelle Verzeichnis ( . ).

Um die erstellte ausführbare Datei auszuführen foo :

./foo

133voto

Andrey Neverov Punkte 2075
gcc main.cpp -o main.out
./main.out

79voto

Komengem Punkte 3586

Dieser Befehl funktioniert auf allen Unix-Rechnern... Ich verwende ihn unter Linux/Ubuntu, aber er funktioniert auch unter OS X. Geben Sie den folgenden Befehl ein Terminal.app .

g++ -o lab21 iterative.cpp

-o ist der Buchstabe O, nicht Null

lab21 wird Ihre ausführbare Datei sein

iterative.cpp ist Ihre C++-Datei

Nachdem Sie diesen Befehl ausgeführt haben, geben Sie Folgendes in das Terminal ein, um Ihr Programm zu starten:

./lab21

36voto

Victor Augusto Punkte 2286

Zwei Schritte für mich:

Erstens:

make foo

Dann:

./foo

15voto

orj Punkte 12656

Die gesamte Anwendungsausführung in einer Unix-Umgebung (Linux, Mac OS X, AIX usw.) hängt vom Suchpfad für die ausführbare Datei ab.

Sie können diesen Pfad im Terminal mit diesem Befehl anzeigen:

echo $PATH

Unter Mac OS X (standardmäßig) wird der folgende durch Doppelpunkte getrennte Suchpfad angezeigt:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

So kann jede ausführbare Datei in den aufgelisteten Verzeichnissen einfach durch Eingabe ihres Namens ausgeführt werden. Zum Beispiel:

cat meinetextdatei.txt

Dies läuft /bin/cat und zeigt mytextfile.txt auf dem Terminal an.

Um einen anderen Befehl auszuführen, der nicht im Suchpfad der ausführbaren Datei enthalten ist, müssen Sie den Pfad zur ausführbaren Datei angeben. Angenommen, ich hätte eine ausführbare Datei mit dem Namen MyProgram in meinem Home-Verzeichnis unter Mac OS X, dann könnte ich sie wie folgt vollständig qualifizieren:

/Benutzer/oliver/MeinProgramm

Wenn Sie sich an einem Ort befinden, der in der Nähe des auszuführenden Programms liegt, können Sie den Namen mit einem Teilpfad versehen. Zum Beispiel, wenn MyProgram befand sich in dem Verzeichnis /Users/oliver/MyProject Wenn ich mich in meinem Home-Verzeichnis befinde, kann ich den Namen der ausführbaren Datei wie folgt qualifizieren und sie ausführen lassen:

MeinProjekt/MeinProgramm

Oder sagen wir, ich war im Verzeichnis /Users/oliver/MyProject2 und ich wollte ausführen /Users/oliver/MyProject/MyProgram Ich kann einen relativen Pfad wie diesen verwenden, um ihn auszuführen:

../MeinProjekt/MeinProgramm

Ähnlich verhält es sich, wenn ich mich in demselben Verzeichnis befinde wie MyProgram Ich muss einen relativen Pfad zum "aktuellen Verzeichnis" verwenden. Das aktuelle Verzeichnis, in dem Sie sich befinden, ist ein Punkt, gefolgt von einem Schrägstrich. Zum Beispiel:

/MeinProgramm

Um festzustellen, in welchem Verzeichnis Sie sich gerade befinden, verwenden Sie die pwd Befehl.

Wenn Sie häufig Programme an einem Ort auf Ihrer Festplatte ablegen, die Sie ausführen möchten, ohne deren Namen zu kennen. Wenn Sie zum Beispiel ein "bin"-Verzeichnis in Ihrem Home-Verzeichnis haben, in dem Sie regelmäßig Shell-Skripte oder andere Programme verwenden, kann es ratsam sein, den Suchpfad für ausführbare Dateien zu ändern.

Dies kann einfach durch Erstellen oder Bearbeiten der bestehenden .bash_profile in Ihrem Home-Verzeichnis und fügen Sie die folgenden Zeilen hinzu:

#!/bin/sh
export PATH=$PATH:~/bin

Hier wird das Tilde-Zeichen (~) als Abkürzung für /Users/oliver verwendet. Beachten Sie auch, dass die Zeile mit dem Rautenzeichen (#!) die erste Zeile der Datei sein muss (falls sie nicht bereits existiert). Beachten Sie auch, dass diese Technik erfordert, dass Ihre Anmeldeshell bash ist (die Standardeinstellung unter Mac OS X und den meisten Linux-Distributionen). Beachten Sie auch, dass Sie, wenn Sie Ihre Programme in ~/bin anstelle von ausführbaren Systemdateien verwendet werden soll, sollten Sie die Exportanweisung wie folgt umstellen:

export PATH=~/bin:$PATH

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X