2012-04-11 3 views
2

두 클래스 (및 주)에 대한 개체 파일을 만드는 메이크 파일이 있고이 클래스 중 하나는 .h 파일에 정의되어 있습니다. 내 메이크 파일에서 나는메이크 파일에서 어떻게 .h 파일 만 컴파일하나요?

FileName.o: FileName.h 
    g++ -c FileName.h 

를 말한다 라인을 가지고 있지만 내가 컴파일 할 때 그것이

FileName.o

을 찾을 수 없다고 나는이를 얻기 위해 FileName.cpp를 작성해야합니까 엮다?

+3

일반적으로 헤더 파일을'#include '대신 실제 소스 파일에 컴파일하려고하면 코드를 리팩토링해야합니다. 아니면 완전히 다시 생각해보십시오. – geekosaur

+0

컴파일은 객체 파일을 생성합니다 ... 링크하려고 할 때의 의미였습니까? – AJG85

답변

3

어딘가에 FileName.h에서 수업을 사용하고 있습니까? 그렇습니까? 따라서 적어도 .cpp 파일 중 하나에는 #include "FileName.h"이 있어야하며 .h의 코드는이 .cpp로 컴파일되므로 .h의 코드를 별도로 컴파일 할 필요가 없습니다.

+0

감사합니다. 그게 효과가있어. – JDN

4

일반적으로 헤더 파일 (.h)을 단독으로 컴파일하려고하지 않습니다. 빈 .cpp 파일에이 파일을 포함 시키면 컴파일하고 .o 파일을 생성 할 수 있지만, 실제로는 속하지 않는 헤더에 내용을 넣지 않는 한 실제로는별로 도움이되지 않습니다. 헤더에.

+0

클래스는 실제로 작으며 친구 클래스에 의해 조작됩니다. 그냥 표준 프로토콜이 아니더라도 그 .h 파일에서 파일을 만들고 객체하는 방법이 있습니까? – JDN

+0

@ JDN 필요한 곳에 .h를 포함시켜야합니다. 별도로 컴파일 할 필요가 없습니다. – Collin

관련 문제