|
#include 는 무조건 파일을 그 위치에 삽입하는 것입니다.
따라서, 헤더파일만 include 시키면, 컴파일은 되지만, 링킹은 안되지요.
cpp 파일까지 include 시키시면..(이러면 헤더 파일 인클루드할 이유는 없지만...)
정상적으로 컴파일과 링킹까지 될 겁니다.
#include는 헤더파일만을 포함하기 위한 것은 아닙니다. 예전이라 기억이 가물하지만,
MFC의 경우 inline 함수를 inl 파일이던가...에 넣어 두었고, include 문으로 삽입하는
것을 본 적이 있습니다.
즉, 무조건적인 삽입을 합니다. 프리프로세서에 의해서요.
그리고, 라이브러리로 만드셨다면, 당연히 프로젝트에 포함시키시고, 헤더파일은 include 하셔야
링크 에러가 나오지 않습니다.
치이즈 님이 쓰신 글 :
: 자신이 만든 파일중에
: cTest.h
: cTest.cpp 란
: 파일이 있고 함수구현이 cpp 에 있을 때
: cTest 란 파일을 프로젝트에 포함시키지않고
: 라이브러리로 그냥 파일에
: #include "cTest.h"
: 만 포함시키면 함수구현은
: cTest.cpp 에 있기 때문에 거기에 있는 함수를 쓰려고 하면
: unresoloved declaration .. 인가 하는 오류가 링크시에 뜨면서
: 실행화일이 안만들어 지는데
: #include "cTest.cpp"
: 까지 적어주면 링크에러가 안뜨면서 실행화일이 되네여
:
: 보통 #include 에는 헤더파일만 쓰는 걸로 알았는데
: 프로젝트 *.bpr 파일에 그 함수가 있는 파일이랑 헤더파일을
: 포함안시키고 라이브러리로 그냥 참고하려고 할 때에는
: 이렇게 *.h 랑 *.cpp 랑 두개를 #include 에 넣고 써야
: 그 파일에 있는 함수를 프로젝트안의 파일에서 쓸수있는건가요?
: 이러면 좀 이상한데..
:
|