2016-09-28 1 views
2

Ich erstellte ein C++ - Projekt, das mehrere Quelldateien und Header-Dateien enthält. Das Programm kompiliert und läuft gut in Codeblöcken, aber ich kann es nicht im Terminal kompilieren.C++ - Programm kompiliert und läuft in Codeblöcken, kann aber nicht im Terminal kompilieren

Alle Dateien befinden sich im selben Ordner.

sind hier der Befehl I ein:

clang++ -std=c++11 main.cpp file1.cpp file1.h 

Es zeigt:

clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated 

Und ein Schlag von Fehlern zu:

error: use of undeclared identifier 'std' 

In der Kopfdatei.

+0

Für den Fall, dass Sie sich fragen, wenn Sie irgendwo einen Header einfügen, hat er Zugriff auf das, was in der Quelldatei enthalten ist. Wenn Sie versuchen, es zu kompilieren, verhält es sich jedoch wie ein Quellcode und erwartet, dass diese Dinge explizit enthalten sind. –

+0

Long-Story-Kurz: Versuchen Sie nicht, Header zu kompilieren, wie bereits beantwortet wurde. –

Antwort

10

Sie sollten vermeiden, eine Kopfzeile Datei zu kompilieren (.h).

Versuchen mit:

clang++ -std=c++11 main.cpp file1.cpp 

Die Header-Datei ist etwas, das die Präprozessor Dateien im cpp enthalten wird, die sie (die Kompilierungseinheiten die #include Präprozessordirektive verwenden) benötigen.

6

Sie sollten keine Header-Dateien, nur Quelldateien kompilieren. In den Quelldateien, die auf die Header-Datei verweisen müssen, setzen Sie #include "file1.h" an die Spitze.

Verwandte Themen