2009-08-19 4 views
1

약 50 개의 원본 파일로 구성된 C++/CLI 어셈블리가 있습니다. 이 어셈블리의 코드는 여러 가지 C++ 라이브러리에 정적으로 링크되어 다양한 '무거운 생명체'유형의 작업을 수행합니다.Visual Studio 8 : 혼합 모드 어셈블리의 빌드 시간

Visual Studio 8 (2005) SP1을 사용하여이 어셈블리를 작성하고 있습니다.

'프로젝트 만'-> '재구성 만'을 통해이 어셈블리를 빌드하면 (종속성없는 등) 괜찮은 듀얼 코어 시스템에서 약 4.5 분이 소요됩니다. 이 어셈블리 빌드 너무 오래 걸리는 이유가 디버깅을 시작하는 방법을

Compiling... 
(file 0) 
(file 1) 
... 
(file N)     // About 2 min total to compile all files 
Linking...     // About 12s 
Generating Code   // 42s 
Finished Generating Code // < 1s 
Embedding Manifest   // < 1s 
Generating Code   // 30s 
Finished Generating Code 
(15 seconds of nothing) 
Done 

: 아래는 약식 빌드 출력은 대략적인 시간과 주석이? 컴파일과 링크 시간은별로 좋지는 않지만 아마도이 크기의 프로젝트에서 기대할 수있을 것입니다. 나에게 우려되는 점은 두 개의 'Generating Code'단계가 있으며 대부분 다른 프로젝트보다 훨씬 오래 걸린다는 점입니다.

첫 번째 추측은 어셈블리에 링크 된 관리되지 않는 코드의 양과 관련이 있다는 것이 었습니다. 그러나, 나는 네이티브 코드를 사용하는 여러 관리되는 응용 프로그램 프로젝트를 가지고 있으며, 빌드 시간은 매우 합리적입니다.

누가 정확히 두 가지 '코드 생성'단계가 오래 걸릴 수 있는지 알고 있습니까? 프로젝트 설정이 누락 되었습니까?

답변

1

프로젝트에 미리 컴파일 된 헤더를 사용합니까? Managed C++는 관리되지 않는 C++과 동일한 방식으로이를 지원합니다. 프로젝트를 미리 컴파일 된 헤더로 전환하려면

자세한 내용은 this article (아래로 스크롤하여 "미리 컴파일 된 헤더"섹션까지)을 참조하십시오.

  • 모든 단일 .cpp 파일이 xxxx.h 프로젝트에 사용 된 모든 공통 헤더 파일이 포함 된 일부 헤더 파일입니다 사용법 #include "XXXX"로 시작해야합니다.
  • xxxx.h 파일을 포함하는 xxxx.cpp 파일을 만들고 다른 코드를 모든 구성에 대해, 전체 프로젝트에 대한 설정을 컴파일 (& 자료를 구축)은 VS에서
  • 이 없습니다의에서 헤더 섹션을 미리 컴파일 전체 프로젝트가 xxxx.h 프리 컴파일 된 헤더를 사용하게하십시오.
  • xxxx.cpp 파일의 VS 컴파일 설정에서만 모든 구성 (빌드 & 릴리스)에 대해 사전 컴파일 헤더 섹션에서이를 "미리 컴파일 된 헤더 생성"으로 설정합니다.

프로젝트를 컴파일하는 데 이전 빌드 시간이 소요됩니다.