Wie kann ich C oder C ++ in einer Unix-Konsole oder einem Mac-Terminal kompilieren / ausführen?
(Ich weiß es, vergesse es und lerne es wieder. Zeit, es aufzuschreiben.)
Wenn es sich um ein einfaches Programm aus einer Hand handelt:
make foo
wo die Quelldatei foo.c oder foo.cpp ist, etc.
Sie brauchen nicht einmal ein Makefile. Make verfügt über genügend integrierte Regeln, um Ihre Quelldatei in eine gleichnamige ausführbare Datei ohne Erweiterung zu integrieren.
Das Ausführen der gerade erstellten ausführbaren Datei entspricht dem Ausführen eines Programms. In den meisten Fällen müssen Sie jedoch den Pfad zur ausführbaren Datei angeben, da die Shell nur nach den darin enthaltenen Dateien sucht $PATH
, um ausführbare Dateien zu finden. In den meisten Fällen enthält dies nicht das aktuelle Verzeichnis ( .
).
So führen Sie die erstellte ausführbare Datei aus foo
:
./foo
make main.cpp
, abermake main
.quelle
Undefined symbols for architecture x86_64
Problem ändere ich den Befehl wie folgt:gcc -lstdc++ main.cpp -o main.out
und das funktioniert auf meinem Mac. via link: stackoverflow.com/questions/11852568/…Dies ist der Befehl, der auf allen Unix-Computern funktioniert ... Ich verwende ihn unter Linux / Ubuntu, aber er funktioniert auch unter OS X. Geben Sie den folgenden Befehl in Terminal.app ein .
-o
ist der Buchstabe O nicht Nulllab21
wird Ihre ausführbare Datei seiniterative.cpp
ist Ihre C ++ - DateiNachdem Sie diesen Befehl ausgeführt haben, geben Sie Folgendes in das Terminal ein, um Ihr Programm auszuführen:
quelle
Zwei Schritte für mich:
zuerst:
dann:
quelle
./foo
Keine Ahnung, wie akzeptiert Antwort dieses wichtige Befehlsstück nicht hatDie gesamte Ausführung von Anwendungen in einer Unix-Umgebung (Linux, Mac OS X, AIX usw.) hängt vom ausführbaren Suchpfad ab.
Sie können diesen Pfad im Terminal mit folgendem Befehl anzeigen:
Unter Mac OS X (standardmäßig) wird der folgende durch Doppelpunkte getrennte Suchpfad angezeigt:
So kann jede ausführbare Datei in den aufgelisteten Verzeichnissen ausgeführt werden, indem nur ihr Name eingegeben wird. Beispielsweise:
Dies wird ausgeführt
/bin/cat
und zeigt mytextfile.txt dem Terminal an.Um einen anderen Befehl auszuführen, der sich nicht im Suchpfad der ausführbaren Datei befindet, müssen Sie den Pfad zur ausführbaren Datei qualifizieren. Angenommen, ich hatte eine ausführbare Datei namens MyProgram in meinem Home-Verzeichnis unter Mac OS XI.
Wenn Sie sich an einem Ort in der Nähe des Programms befinden, das Sie ausführen möchten, können Sie den Namen mit einem Teilpfad versehen. Wenn sich beispielsweise
MyProgram
das Verzeichnis/Users/oliver/MyProject
I und ich in meinem Ausgangsverzeichnis befanden, kann ich den Namen der ausführbaren Datei wie folgt qualifizieren und ausführen lassen:Oder sagen Sie, ich war im Verzeichnis
/Users/oliver/MyProject2
und wollte ausführen./Users/oliver/MyProject/MyProgram
Ich kann einen relativen Pfad wie diesen verwenden, um ihn auszuführen:Ebenso, wenn ich mich im selben Verzeichnis
MyProgram
befinde, in dem ich einen relativen Pfad "aktuelles Verzeichnis" verwenden muss. Das aktuelle Verzeichnis, in dem Sie sich befinden, ist das Punktzeichen, gefolgt von einem Schrägstrich. Beispielsweise:Verwenden Sie den
pwd
Befehl, um festzustellen, in welchem Verzeichnis Sie sich gerade befinden .Wenn Sie Programme normalerweise an einem Ort auf Ihrer Festplatte ablegen, den Sie ausführen möchten, ohne deren Namen qualifizieren zu müssen. Wenn Sie beispielsweise ein "bin" -Verzeichnis in Ihrem Home-Verzeichnis für regelmäßig verwendete Shell-Skripte anderer Programme haben, ist es möglicherweise ratsam, Ihren ausführbaren Suchpfad zu ändern.
Dies kann einfach durch Erstellen oder Bearbeiten der vorhandenen
.bash_profile
Datei in Ihrem Home-Verzeichnis und Hinzufügen der Zeilen erfolgen:Hier wird das Tilde-Zeichen (~) als Verknüpfung für / Users / oliver verwendet. Beachten Sie auch, dass die Hash-Bang-Zeile (#!) Die erste Zeile der Datei sein muss (falls sie noch nicht vorhanden ist). 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 außerdem, dass Sie
~/bin
die Exportanweisung wie folgt neu anordnen sollten , wenn Sie möchten, dass Ihre installierten Programme gegenüber ausführbaren Systemdateien bevorzugt verwendet werden:quelle
Ryan, ich ändere dies, um eine Antwort anstelle eines Kommentars zu sein, da ich anscheinend zu kurz war. Tun Sie dies alles in "Terminal".
Um den G ++ - Compiler zu verwenden, müssen Sie Folgendes tun:
Navigieren Sie zu dem Verzeichnis, in dem Sie die * .cpp-Datei gespeichert haben.
cd ~/programs/myprograms/
(Das ~ ist eine Verknüpfung für Ihr Zuhause, dh / Users / Ryan / programme / myprograms /, ersetzen Sie es durch den Ort, den Sie tatsächlich verwendet haben.)
Kompilieren Sie es
g++ input.cpp -o output.bin
(output.bin kann wirklich alles mit jeder Erweiterung sein. bin ist unter Unix nur üblich.)Es sollte NICHTS zurückgegeben werden, wenn es erfolgreich war, und das ist in Ordnung . Im Allgemeinen erhalten Sie Rückgaben bei Fehlern.
Wenn Sie jedoch eingeben
ls
, wird die Liste der Dateien im selben Verzeichnis angezeigt. Zum Beispiel würden Sie die anderen Ordner input.cpp und output.bin sehenFühren Sie es nun aus dem Verzeichnis heraus mit aus
./outbut.bin
quelle
make
nicht" hinzu, da kein Makefile vorhanden ist.Ein kompakter Weg, dies zu tun, könnte sein:
Schön, einen Einzeiler zu haben, damit Sie Ihre ausführbare Datei einfach wieder ausführen können.
quelle
Angenommen, das aktuelle Verzeichnis befindet sich nicht im Pfad, lautet die Syntax
./[name of the program]
.Beispielsweise
./a.out
quelle
Fügen Sie Folgendes hinzu, um die besten Warnungen zu erhalten. Sie werden es nicht bereuen. Wenn Sie können, kompilieren Sie WISE (Warnung ist Fehler)
quelle
Zum Kompilieren von C- oder C ++ - Programmen gibt es einen allgemeinen Befehl:
make filename
./filename
make erstellt Ihre Quelldatei in eine ausführbare Datei mit demselben Namen. Wenn Sie jedoch die Standardmethode verwenden möchten, können Sie den gcc-Compiler verwenden, um C-Programme und g ++ für c ++ zu erstellen
Für C:
Für C ++:
quelle
Verwenden Sie a
makefile
. Selbst für sehr kleine Projekte (= eine Datei) lohnt sich der Aufwand wahrscheinlich, da Sie mehrere Sätze von Compilereinstellungen zum Testen haben können. Das Debuggen und Bereitstellen funktioniert auf diese Weise viel einfacher.Lesen Sie das
make
Handbuch , es scheint auf den ersten Blick ziemlich lang zu sein, aber die meisten Abschnitte können Sie einfach überfliegen. Alles in allem habe ich ein paar Stunden gebraucht und mich viel produktiver gemacht.quelle
Ich habe diesen Link mit Anweisungen gefunden:
http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/
Grundsätzlich tun Sie:
quelle
gcc hello.c -o a.out
? Welches macht das gleiche wiegcc hello.c
.Geben Sie einfach das Verzeichnis ein, in dem sich Ihre c / cpp-Datei befindet.
zum Kompilieren und Ausführen von c-Code.
zum Kompilieren und Ausführen von C ++ - Code.
"$" ist das Standard-Mac-Terminal-Symbol
quelle
Um einen CPP-Quellcode vom Mac-Terminal zu kompilieren und auszuführen, muss Folgendes ausgeführt werden:
quelle
Das Ausführen einer .C-Datei über das Terminal erfolgt in zwei Schritten. Der erste Schritt besteht darin, gcc in das Terminal einzugeben, die C-Datei auf dem Terminal abzulegen und dann zu drücken Enter:
Führen Sie im zweiten Schritt den folgenden Befehl aus:
quelle
Angenommen, der Dateiname lautet "main.cpp", um C ++ - Dateien auszuführen, die unter dem Befehl ausgeführt werden.
1.Kompilieren Sie, um eine Objektdatei aus einer C ++ - Datei zu erstellen.
2. Da
#include <conio.h>
MacOS nicht unterstützt wird, sollten wir die Alternative verwenden, die Mac unterstützt#include <curses.h>
. Jetzt muss die Objektdatei in eine ausführbare Datei konvertiert werden. Um zu benutzen, müssencurses.h
wir die Bibliothek benutzen-lcurses
.3. Führen Sie jetzt die ausführbare Datei aus.
quelle