2010-05-06 2 views
2

대용량 C++ 솔루션에는 중간 DLL을 빌드하는 데 필요한 포함 파일과 DLL 클라이언트에서 사용할 포함 파일을 분리하는 가장 좋은 방법이 있습니까?대형 C++ 프로젝트에 포함/내보내기를 구성하는 규칙이 있습니까?

#include "ProjectName/Interface/myinterface.h" 
: 기본 폴더 또는 전체 이름을 입력 포함로

우리는 인터페이스 (DLL 인터페이스)라는 폴더에있는 모든 포함 파일을 그룹화 한

하지만, 고객이이 중 하나를 인터페이스 폴더를 포함하는

ProjectName이라는 폴더를 만들고 여기에 포함 파일을 넣을 곳에 exports라고하는 별도의 폴더를 만드는 것이 더 좋지 않습니까? 그래야 고객이 입력 될 것이다 : 바로 위의 일을 할 경우

#include "ProjectName/myinterface.h" 

, 그때 내가 솔루션 내에서 파일을 보관하고로 파일을 복사하는 포스트 빌드 이벤트를 (내가 비주얼 스튜디오 2K5을 사용)을 생성한다 "내보내기"폴더 (/ ProjectName /)? 또는 (이보다 직접적이며, 유지 보수 문제가 발생할 적은 기회를 가지고 그냥 내 프로젝트에서 직접이 폴더에서 파일을 포함하는 것이 좋습니다?

좀 더 확실한 솔루션보다 조언을 찾고 있어요.

이 글을 읽고 주셔서 감사합니다!

앤서니

답변

3

인터페이스는 하나 이상의 헤더로 구성 할 수 있다면,

#include "ProjectName/Interface/header1.h" 

나에게 더 좋아 보인다.

+0

같은 개발 트리를 공유 할 때 나는 종류의이 같은뿐만 아니라,하지만, 어떤 사람들은 같은 것을 수행하려고 할 수 있습니다 "notpartoftheinterface.h/프로젝트 이름" 의 #include 당신은 그들을 쫓아가 제거하는 것은 포함합니다. – BlueTrin

+2

@BlueTrin : 공용 헤더 파일과 별도의 디렉토리에 공용 인터페이스 파일을 보관하지 않는 이유는 무엇입니까? –

+1

@BlueTrin : 내가 한 프로젝트에서 한 것은 모든 구현 세부 사항 (cpp 파일과 개인 헤더)이'Interface' 폴더 내의'_Imp' 폴더에있는 것입니다. 당신은 소스를 grep 할 수 있고, 'blah'바깥의 모든 것은''blah/imp "..."''를 포함해서는 안됩니다. 또한 소스 트리를 가져 와서'_Imp' 폴더를 모두 지우고 모든 헤더를 가질 수 있습니다. 개인 물건을 모두 지우고 나눠주세요. – sbi

관련 문제