2017-10-28 3 views
0

ich tutorial auf meinem macbook pro mit Sierra und Xcode9.0.1Sierra, cav Befehl ‚Iostream‘ werfen Datei nicht gefunden

ich folgende Hallo Welt Code mit g kompiliert folgende bin ++ ohne Probleme.

#include <iostream> 
main() { 
    using namespace std; 
    cout << "Hello, World!" << endl; 
} 

Aber wenn ich

cpp hello.cxx | more 

ausführen, wie durch das Tutorial erforderlich, bekam ich folgende Fehlermeldung:

hello.cpp:1:10: fatal error: 'iostream' file not found 
#include <iostream> 
     ^~~~~~~~~~ 
1 error generated. 
# 1 "hello.cpp" 
# 1 "<built-in>" 1 
# 1 "<built-in>" 3 
# 330 "<built-in>" 3 
# 1 "<command line>" 1 
# 1 "<built-in>" 2 
# 1 "hello.cpp" 2 
+0

Der 'cpp' Befehl ist der Präprozessor. Es kann nicht an sich wissen, wo sich System-Header-Dateien befinden. Wahrscheinlich müssen Sie die Option "-I" (Großbuchstabe i) verwenden, um die Suchpfade für die Systemheaderdatei anzugeben. –

+0

Nach dem googeln fand ich, dass ['cpp'] (http://www.tutorialspoint.com/unix_commands/cpp.htm) ist der Name für den c-Pre-Prozessor in Linux und wahrscheinlich auch in OS/X. (Da es nur Vorverarbeitung (z. B. Anweisungen mit dem Präfix "#"), wird es auch mit C++ - Dateien arbeiten.) Vielleicht versuchen Sie 'man cpp', um mehr zu erfahren. Es hat möglicherweise nicht die richtigen Include-Verzeichnisse standardmäßig. Um dies zu überprüfen, könnten Sie 'cpp -I' und den Pfad, unter dem sich die Datei' iostream' befindet, versuchen. – Scheff

+0

Danke, also nach Ihrem Kommentar habe ich das versucht: cpp -I /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iostream hallo.cpp Aber habe: clang : Fehler: keine solche Datei oder kein Verzeichnis: 'c' clang: warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iostream: 'linker' Eingabe nicht verwendet [ -Wunused-Befehlszeilenargument] – BlackSwing

Antwort

0

Da Sie eine funktionierende g++ Compiler haben, können Sie das verwenden folgende Befehlszeile zum Abrufen der vorverarbeiteten Ausgabe:

g++ -E hello.cxx | more

Die Option -E weist den Compilertreiber an, den Präprozessor auszuführen und die vorverarbeitete Ausgabe zu senden.