2009-11-14 1 views
1

이전 버전의 개발자가이 코드 기반이 빌드하는 모든 프로젝트에 대해 미리 컴파일 된 헤더를 사용했던 Mac 및 Windows 용 Metrowerks 코드가 있습니다.미리 컴파일 된 헤더 제거하기

개념적으로 미리 컴파일 된 헤더를 제거하는 방법은 무엇입니까?

.pch의 내용을 가져 와서 core.h로 이동하고 모든 클래스 .h 파일에 포함 시키시겠습니까?

CMAKE를 사용하여 건물로 이동하고 미리 컴파일 된 헤더가 작동하도록 해킹 할 수는 있지만 종속성을 제거하는 것이 가장 좋습니다.

일부 사람들은 컴파일 속도에 대해 말할 수는 있지만 경주에는 없습니다. 이미 빠른 장비가 있습니다. 미리 컴파일 된 헤더에서 벗어나는 방법에 더 관심이 있습니다.

+0

와우, 미리 컴파일 된 헤더에서 ** 이동 ** 할 이유가 없었습니다. 기묘한. –

+2

@Frank - 컴파일러가 다르게 취급하고 이식성이 없다는 사실은 어떨까요? 아니면 미묘한 버그일까요? 여기에는 많은 스레드가 사용되는 문제를 다루고 있습니다. 나는 그들 자신을 없애는 방법을 묻는다 ..... –

답변

1

개념적으로 미리 컴파일 된 헤더를 제거하는 방법은 무엇입니까?

미리 컴파일 된 헤더가 최적화되었습니다. 개념적으로 단순히 일반 헤더를 대신 사용하여 미리 컴파일 된 헤더를 제거합니다.

.pch의 내용을 가져 와서 core.h로 이동 한 다음 모든 .h 파일에 포함 시키시겠습니까?

나는 이것을하는 프로그래머를 알고있다. 개인적으로 필자는 내가 사용하고있는 함수와 그 함수의 출처를 알고 싶어하므로 각 파일의 컴파일에 필요한 모든 헤더 (그리고 해당 파일을 컴파일하는 데 필요한 헤더 만)가 각 파일 #include에 있는지 확인해야합니다. 다시 말하지만 헤더가 더 이상 필요하지 않은지 지속적으로 확인해야합니다.

1

거기에 ... 중앙 헤더가 절대적으로 에 의해 포함 된 C++ 프로젝트에서 각각 번역 단위가 포함되며 거의 모든 부스트 헤더가 포함되어 있습니다. PCH가 지원되는 플랫폼에서 좋았지 만, 그렇지 않은 곳에서 컴파일하고 있는데, 이 걸렸습니다.

그래서, 여기에 간다 (..으로 당신의 core.h 접근 방식 ++, 특히하지 C와, 그러지 마 것) :

  • GREP을 PCH의 모든 흠을 위해, 그리고 '에게 그들을 던져 (또는, 더 부드럽게 댓글을 달아주세요).
  • 각 번역 단위에 대해 빌드를 시도하고 더 이상 컴파일 오류가 없어 질 때까지 누락 된 포함을 추가하십시오.

네, 그건 무차별 대입 방식입니다. 불행히도 나는 더 잘 알지 못합니다.