프리컴파일을 한 곳에 모아 놓는 방식에 큰 문제는 없습니다.
저도 그렇게 쓰고 있습니다.
저는 폼이 30여개 소스만 몇만줄 이상되어도 컴파일은 불과 몇초만에 끝납니다.
프리컴파일 할 파일, 가령 preheader.h 를 만드실때 여기에 모든 헤더파일을 다 모으지 마세요.
직접 작성한 헤더파일은 여기에 포함시키지 마시고,
고정적이고 불변적인 시스템의 헤더만 포함시키세요.
직접 작성한 헤더는 각각의 소스에서 별도로 인쿠르드하는 것이 좋습니다.
물론 자동으로 들어가는 폼의 헤더파일의 include 된 항목도 고치지 말고 그대로 두시고요.
이렇게 하는 것이 제일 빠르고 편리합니다.
저도 처음에는 모든 헤더를 몰아서 넣다가, 이렇게 바꾸니 컴파일에 시간걸리는 일이 없더군요.
자신이 작성한 헤더파일은 긴 경우가 별로 없으니 실제 컴파일 시간을 잡아 먹는 일은 드뭅니다.
부언을 안해도 잘 이해가 되리라고 생각됩니다.
그럼..
천승환 님이 쓰신 글 :
: 저랑 똑같은 현상이시네요..ㅡ.ㅡ;..
:
: 혹시 고치셨는지요?..
:
: 저거 고쳐본다고 ..일도 못하고 몇시간째 머리 아퍼하고 있네요..흑..
:
: 방법 찾으셨나요??...
:
: smleelms 님이 쓰신 글 :
: : 흐... 벌써 3번짼데.. 뜻대로 안되는군요..
: :
: : 현재 20여개의 헤더파일과 소스파일들, 그중 17개가 폼 파일이구요, 한개의 메인폼파일 헤더와 2개의 헤더파일은 나머지 모든 소스파일에 인클루드되어 있습니다.
: :
: : 그리고나서 유광희님의 팁데로 해도 컴파일 시간도 거의 거대로고, 매번 컴파일할 때마다 5백만 라인에 육박합니다. 더불어 폼파일의 헤더에 선언된 내용과 Preheader에 선언된 내용의 중복때문인지.. 링크워닝이 엄청나게 뜨네요.. Dialogs.hpp에서난 프리컴파일 워닝때문에.. 프리컴파일 헤더가 제대로 생성이 안된건지... , ~.csm 파일은 존재합니다만..
: :
: : "혹시 의문점이 있지 않나요? 폼에 보면 헤더 파일에 폼에서 썼던 파일들이 자동으로 include 선언되어 있죠? 이런것도 말끔히 위 preheader.h 에 넣음으로서 이젠 무쟈게 빨라집니다." --> 이렇게 하니 전 뮤쟈게 워닝만 뜹니다.. ㅠ.ㅠ
: :
: : 워닝메시지를 보시고, 누가 진단을 좀.. ^^;;;
: :
: : 참고로
: : [C++ Warning] Dialogs.hpp(437): W8058 Cannot create pre-compiled header: initialized data in header
: : 워닝의 소스코드는 다음과 같습니다.. 물론 제가 건드린건 없지요..
: :
: : extern PACKAGE bool __fastcall PromptForFileName(AnsiString &AFileName, const AnsiString AFilter = "", const AnsiString ADefaultExt = "", const AnsiString ATitle = "", const AnsiString AInitialDir = "", bool SaveDialog = false);
: :
|