문제

오픈 소스 코드 기반을 살펴보면이 코드를 발견했습니다.

#include "StableHeaders.h"
#include "polygon.h"
#include "exception.h"
#include "vector.h"
...

이제 stableHeaders.h는 'Control'CPP에 의해 포함 된 선행 헤더입니다. 사전 컴파일 된 헤더가 stableHeaders.h 파일에도 포함 된 후에 나타나는 세 가지가 포함됩니다. 내 질문은,이 파일이 두 번 포함되어있어 코드베이스가 사전 컴파일 된 헤더를 지원하지 않는 컴파일러를 구축 할 수 있도록? 가드/헤더 캐싱이 포함되어 있다고 가정 하듯이 다중 내용은 어쨌든 중복됩니다 ...

편집하다 btw, stableHeaders.h 파일에는 Win32에 대한 점검이 있습니다.

도움이 되었습니까?

해결책

사전 컴파일 된 헤더를 지원하지 않는 컴파일러에는 stableHeaders.h가 포함됩니다. h는 (사전 컴파일 된 파일을 사용하지 않고) 매번 다시 기뻐합니다. 어떤 문제도 일으키지 않을 것입니다. 요청대로 특정 컴파일러에 대한 문제를 해결하지도 않습니다. 나는 그것이 개발 중에 시간이 지남에 따라 일어난 사소한 '실수'라고 생각합니다.

다른 팁

나는 당신이 질문 질문에 대답했다고 생각합니다! 사전 컴파일 된 헤더는 컴파일러 기능입니다. 가드가 있으면 헤더는 두 번 포함되지 않습니다.

사전 컴파일 된 헤더를 보호하고 어쨌든 물건을 포함시키기 위해 생각할 수있는 유일한 이유는 속도입니다. 사전 컴파일 된 헤더를 사용하는 이유는 컴파일 시간 속도를 높이는 것입니다. 이것은 사전 컴파일 된 헤더의 내용을 포함하고 컴파일하여 작동합니다. 사전 컴파일 된 헤더가없는 것보다 빠릅니다.

그러나 다른 플랫폼이 다운을 지원하는 경우 PrepCompiled 헤더를 지원하는 경우이 소스 파일에 필요한 헤더 파일 만 포함하려고합니다. 따라서 사전 컴파일 된 헤더에 일부 소스 파일에만 필요한 파일이 포함 된 경우 필요한 헤더 파일을 포함하고 컴파일하는 것이 더 빠릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top