Kompilieren eines einfachen Hello World-Programms unter OS X über die Befehlszeile

97

Ich habe ein einfaches Hallo-Welt-Beispiel, das ich unter OS X kompilieren möchte hw.cpp:

#include <iostream>
#include <string>
using namespace std;
int main() {
  cout << "Hello world!" << endl;
  return 0;
}

Ich würde es gerne mit kompilieren gcc, aber ich hatte keinen Erfolg. Ich würde auch gerne die anderen Optionen hören, wie die Verwendung von Xcode?

erikvold
quelle
7
"Kein Erfolg" hilft niemandem wirklich bei der Diagnose Ihres Problems.
Gareth Davidson

Antworten:

182

Versuchen

g++ hw.cpp
./a.out

g++ist das C ++ - Compiler-Frontend für GCC.
gccist das C-Compiler-Frontend für GCC.

Ja, Xcode ist definitiv eine Option. Es ist eine GUI-IDE, die auf GCC aufbaut.

Obwohl ich einen etwas ausführlicheren Ansatz bevorzuge:

#include <iostream>

int main()
{
    std::cout << "Hello world!" << std::endl;
}
Martin York
quelle
17
@math: return 0ist in main implizit.
Fredoverflow
3
@mathepic: und die +1. Es ist in C ++ nicht erforderlich. Wenn maindas Ende der Funktion erreicht ist, ohne eine Rückgabe zu treffen, wird implizit 0 zurückgegeben.
Martin York
2
Ah, in Ordnung. Ich würde es immer noch aus Gründen der Klarheit verwenden.
Alternative
4
@mathepic: Das ist 1 Meinung. Persönlich finde ich es klarer, es nicht zu benutzen.
Martin York
1
Warum a.out? In Fenstern erwarte ich zu sehen a.exe. In * nix benötigen wir keine Erweiterungen. Warum .out über keine Erweiterung verwenden? aist auch ein seltsamer Standardname.
P.Brian.Mackey
34
g++ hw.cpp -o hw
./hw
niemand
quelle
Von allen anderen hat dieser für mich ganz gut geklappt. Vielen Dank.
Bruno Recillas
10
user@host> g++ hw.cpp
user@host> ./a.out
Sam Miller
quelle
5

gccZum Kompilieren müssen Sie eine Reihe von Befehlszeilenoptionen übergeben. Kompilieren Sie es g++stattdessen mit.

Ignacio Vazquez-Abrams
quelle
2

Die neue Version sollte folgendermaßen lauten:

xcrun g++ hw.cpp
./a.out
Badmanchild
quelle
Dies gibt mirld: can't link with a main executable file './a.out' for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Eddified
@ Rat-a-tat-a-tat Entschuldigung, ich erinnere mich nicht, war vor 3 Jahren.
Eddified
1

Sie haben nicht angegeben, welcher Fehler angezeigt wird.

Ist das Problem, gccdas Ihnen einen Fehler gibt oder das Sie überhaupt nicht ausführen gcckönnen?

Wenn es das letztere ist, ist die wahrscheinlichste Erklärung, dass Sie bei der Installation der Entwicklungstools nicht "UNIX Development Support" aktiviert haben, sodass die ausführbaren Befehlszeilendateien nicht in Ihrem Pfad installiert sind. Installieren Sie die Entwicklungstools erneut und klicken Sie auf "Anpassen" und aktivieren Sie dieses Kontrollkästchen.

Stephen Canon
quelle
1

Sie können auch eine IDE wie CLion (JetBrains) oder einen Texteditor wie Atom verwenden. Das gpp-Compiler-Plugin funktioniert wie ein Zauber (F5 zum Kompilieren und Ausführen).

José Rojas
quelle
1

Verwenden Sie Folgendes für mehrere CPP-Dateien

g++ *.cpp
./a.out
wLc
quelle