我创建了一个包含多个源文件和头文件的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 :(得分:10)
您应该避免编译标头文件(.h
)。
尝试:
clang++ -std=c++11 main.cpp file1.cpp
头文件是预处理器将包含在需要它的 cpp 文件中的那些文件<那些编译单元使用{{1预处理器指令)。
答案 1 :(得分:6)
你不应该编译头文件,只编译源文件。在需要引用头文件的源文件中,将#include "file1.h"
放在顶部。