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.)

War es hilfreich?

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:

  1. 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.)

  2. Ü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

  3. siehe
  4. 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:

  1. make filename

  2. ./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 bauen

Fü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.

scroll top