2016-09-28 107 views
2

我創建了一個包含多個源文件和頭文件的C++項目。該程序在代碼塊中編譯和運行良好,但我無法在終端中編譯它。C++程序編譯並運行在代碼塊中,但無法在終端中編譯

所有文件都在同一個文件夾中。

下面是我輸入命令:

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

它顯示:

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

和錯誤的大約一記重拳:

error: use of undeclared identifier 'std' 

在頭文件。

+0

爲防萬一你想知道,當你在某個地方包含一個頭文件時,它可以訪問包含它的源文件所包含的內容。當你嘗試編譯它時,它的行爲就像源代碼一樣,並且會期望明確包含這些東西。 –

+0

長篇小說:不要試圖編譯頭文件,因爲已經被回答。 –

回答

10

您應該避免編譯標頭文件(.h)。

嘗試用:

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

頭文件是什麼,該預處理將在CPP包括文件,這需要它(那些編譯單元其使用#include預處理指令)。

6

你不應該編譯頭文件,只有源文件。在需要引用頭文件的源文件中,將#include "file1.h"放在頂部。