ncmpcpp의 소스 코드를보고 있었는데이 코드를 보았습니다.구현 파일이 없을 때 헤더 파일 포함?
#include <mpd/client.h>
해당 파일 내부는 ncmpcpp에서 사용하는 기능입니다. 그러나 그것들은 단지 헤더 일뿐입니다. cpp 파일도 어딘가에 존재하지 않아야합니까? 나는 같은 디렉토리에서 그들을 찾을 수 없었다. 어디있어?
또한 포함 된 내용이 < 및>로 둘러싸여있을 때 어떻게 보이는지 어떻게 알 수 있습니까?
ncmpcpp의 소스 코드를보고 있었는데이 코드를 보았습니다.구현 파일이 없을 때 헤더 파일 포함?
#include <mpd/client.h>
해당 파일 내부는 ncmpcpp에서 사용하는 기능입니다. 그러나 그것들은 단지 헤더 일뿐입니다. cpp 파일도 어딘가에 존재하지 않아야합니까? 나는 같은 디렉토리에서 그들을 찾을 수 없었다. 어디있어?
또한 포함 된 내용이 < 및>로 둘러싸여있을 때 어떻게 보이는지 어떻게 알 수 있습니까?
제 3 자 라이브러리 인 경우 대부분 소스 코드가 포함되지 않습니다. 그것도 필요하지 않습니다. 헤더에 선언 된 모든 기호 (사용 예정)는 헤더와 함께 제공되었을 .lib
파일로 내보내 져야합니다.
template
이 아닌 경우 인라인 수 있습니다.
코드를 직접 컴파일하려면 cpp
파일 또는 더 일반적으로 구현 파일 만 있으면됩니다. 당신은하지 않습니다. 헤더와 바이너리 만있는 모듈을 사용할 수 있습니다. 물론
는 오픈 소스 프로젝트의 예는 모든 파일이 일반적으로 포함되어 마음에 관해서하지만 상용 제품의 경우, 왜 소스 코드를 공개? 어떤 경쟁자가 그것을 그냥 복사하지 않고 새로운 이름으로 재판매하는 것은 무엇입니까?
myclass.h
(이 <>
또는 ""
로 구분됩니다 헤더를 찾을하는 방법 알려 표준 규칙은 없지만 일반적인 합의가 <>
시스템 헤더 (string
같은 또는 iostream
)와 자신의 헤더 ""
에 사용할 수 있다는 것입니다). 컴파일러에게 먼저 어디를보아야하는지 알려줍니다. 컴파일러는 이러한 일반적 .a
또는 .lib
파일 (매우 드물게 비록 당신이 .def
파일을해야 할 수도 있습니다)이며, 링크 할 수있는 그것과 라이브러리 (정적 또는 동적으로 링크)이 있으면
이것은 소스에서 빌드 한 것에서 비롯되었으므로 구현 파일이 필요하지 않은 이유는 무엇입니까? –
@javascriptninja : 최대 "동적 링크" –
모듈을 BUIT 때 그들은 필요했다 봐, 그건 내가 말 했어요. –