2012-10-14 3 views
0

Eclipse에서 CDT를 사용합니다.Eclipse C 빌드 구성의 헤더 파일 제외

하나의 구성에서 src/foo.h 만 사용하고 다른 하나는 src/bar/foo.h를 사용하는 빠른 방법이 있습니까?

src/dir은 다른 헤더 파일을 많이 가지고 있기 때문에 하나의 파일이 실제로 다를 때 src/dir을 하나씩 추가 할 필요가 없다고 낙관적으로 기대하고 있습니다.

필자도 직접 작성한 라이브러리 나 디렉토리 구조가 아니기 때문에 파일을 이동하거나 수정하고 싶지는 않습니다. (내가 정말로해야한다면, 나는 그것을 소트해야한다고 생각한다)

나는 "일종의"제외 목록이 이상적이라고 생각한다. 그게 존재합니까?

+0

"하나의 파일 만 실제로 다르다"는 것은 무엇을 의미합니까? 헤더 파일은 무엇입니까? 외부 라이브러리의 파일입니까? – ForceMagic

+0

예, 외부 라이브러리에 있습니다. 빌드 구성이 두 가지 있습니다. 둘 다 모두 동일한 라이브러리 파일을 사용합니다. 한 파일은 빌드 중 하나에 포함될 필요가 없으며 다른 파일은 다른 경로에 포함되어야합니다. – SpiRail

답변

2

빌드 할 빌드 구성을 알려주는 매크로를 정의한 다음이를 사용하여 포함 할 파일을 결정하십시오.

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오. 그런 다음 팝업 대화 상자에서 C/C++ 빌드를 선택한 다음 설정을 선택하십시오. 전처리 기 정의 (매크로)를 정의하는보기로 끝나야합니다. 헤더 파일에 다음

중 하나를 수행하십시오

#ifndef MY_MACRO 

// contents of header file only available when MY_MACRO is NOT defined  

#endif 

또는 할 수 있습니다 (그리고 아마도해야한다) 소스 파일이 이처럼 대신 포함 시점에 수행

#ifdef MY_MACRO 
# include "bar.h" 
#else 
# include "foo/bar.h" 
#endif 

여러 소스 파일의 헤더 파일을 포함하고 위에서 언급 한 행을 복사하지 않으려는 경우 위의 행을 복사하여 모든 위치에 포함 시키면 다른 헤더를 추가 할 수 있습니다.

+0

그 방법에 대한 좋은 링크가 있습니까? – SpiRail

+0

고마워!. 그게 효과가있는 것 같습니다. 어떤 "매크로"도 찾을 수 없기 때문에 그냥 c/C++ 아래의 "심볼"로 지정했습니다. 일반 -> 경로 및 기호 – SpiRail