C ++程序在代码块中编译和运行,但无法在终端中编译

时间:2016-09-28 18:25:07

标签: c++ c++11 terminal codeblocks

我创建了一个包含多个源文件和头文件的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' 

在头文件中。

2 个答案:

答案 0 :(得分:10)

您应该避免编译标头文件(.h)。

尝试:

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

头文件是预处理器将包含在需要它的 cpp 文件中的那些文件<那些编译单元使用{{1预处理器指令)。

答案 1 :(得分:6)

你不应该编译头文件,只编译源文件。在需要引用头文件的源文件中,将#include "file1.h"放在顶部。