2016-09-28 1 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

Long-story-short : 이미 답변 된 것처럼 헤더를 컴파일하지 마십시오. –

답변

10

헤더 파일 (.h)을 컴파일하지 마십시오.

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

헤더 파일이 전처리cpp에있는 필요 파일이 포함됩니다 무언가이다 (그 컴파일 단위 #include 처리기 지시문을 사용) :

함께보십시오.

6

원본 파일 만 헤더 파일을 컴파일하면 안됩니다. 헤더 파일을 참조해야하는 소스 파일의 경우 상단에 #include "file1.h"을 입력하십시오.