Visual Studio 2010에서 병렬 빌드를 수행하려면 어떻게해야합니까?
VS 2010에서 한 번에 둘 이상의 C ++ 컴파일 프로세스를 실행하려면 어떻게해야합니까? 객체 모듈을 병렬로 구축하는 것을 의미합니다. 한 번에 두 개 이상의 프로젝트를 빌드하는 데 관심이 없습니다 (도구> 옵션> 빌드 및 실행 <최대 병렬 프로젝트 빌드 수에 대해 알고 있지만 원하는 작업을 수행하지 않습니다).
기본적으로 Visual Studio의 "make -jN"에 해당하는 것을 찾고 있습니다.
- 도구-> 옵션
- 프로젝트 및 솔루션 \ VC ++ 프로젝트 설정
- 최대 동시 C ++ 컴파일
또한 Ross Smith가 주석에서 말했듯이 프로젝트에서 "다중 프로세서 컴파일"옵션도 켜야합니다.
- 프로젝트 속성
- 구성 속성> C / C ++> 일반
- 다중 프로세서 컴파일
- 이익!
멀티 스레딩을 사용하여 VS 빌드를 만들기 위해 설정해야하는 두 개의 스위치가 있습니다 (둘 다 프로젝트에 따라 다름).
- 프로젝트 속성-> C / C ++-> 일반-> 다중 프로세서 컴파일 설정 : 예 (/ MP)
- 프로젝트 속성-> C / C ++-> 코드 생성-> 최소 다시 빌드 사용 설정 : 아니요 (/ Gm-)
도구-> 옵션-> 프로젝트 및 솔루션-> VC ++ 프로젝트 설정-> 최대 동시 C ++ 컴파일 설정도 확인하십시오. 기본값은 0이며 VS가 가능한 한 많은 동시 컴파일을 사용할 수 있도록합니다.
Necrolis의 의견은 올바른 해결책으로 보입니다.
/ MP 옵션을 사용하면 컴파일러가 각각 별도의 프로세스에서 하나 이상의 복사본을 만듭니다. 이러한 복사본은 동시에 소스 파일을 컴파일합니다. 결과적으로 소스 파일을 빌드하는 데 걸리는 총 시간을 크게 줄일 수 있습니다.
프로젝트 수준 (따라서 모든 파일에 적용됨)과 개별 파일에 설정할 수 있습니다 #import
. 예를 들어 .
특히, / MP는 일반적으로 미리 컴파일 된 헤더 또는 #import
; 이 경우에도 프로젝트에 / MP 플래그를 설정 한 다음 단일 파일 (일반적으로 stdafx.cpp 및 #import를 사용하는 모든 파일)에서이를 지울 수 있습니다.
내가 한 일은 다음과 같습니다.
1) "프로젝트 및 솔루션"-> "빌드 및 실행"보다 도구-> 옵션으로 이동하여 코어 수가 있습니다. 처음에는 이것이 내가해야 할 전부라고 생각했지만
2) 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하십시오. "구성 속성"-> "C / C ++"-> "명령 줄" /MP4
에서 4는 보유한 코어 수입니다. 플래그가 호환되지 않는다는 경고가 표시되므로 다른 단계가 있습니다.
3) "구성 속성"-> "C / C ++"-> "코드 생성"아래에 "최소 재 빌드 활성화"가 있습니다. 아니오로 변경하십시오.
다시 빌드하면 작업 관리자에 여러 CL 프로세스가 표시됩니다.
jom은 당신이 찾고있는 도구입니다.
위키에서 : http://qt-project.org/wiki/jom
jom은 여러 독립 명령의 병렬 실행을 지원하는 nmake의 복제본입니다. 기본적으로 GNU make와 유사한 -j 명령 줄 스위치를 추가합니다.
대부분의 문서는 Windows에서 Qt 라이브러리 빌드 속도를 높이려는 Qt 개발자를 대상으로하지만, nmake 호환 메이크 파일이있는 한 jom은 비 Qt 프로젝트에서도 완벽하게 작동합니다.
위키 페이지에는 다운로드 할 수있는 바이너리가 있으며 nmake처럼 jom을 호출합니다.
내가 참조! 귀하의 요구 사항은 병렬 스레드에서 단일 프로젝트를 빌드하는 것입니다.
나는 찾을 상어 컴파일러 제어가 매우 유용 플러그인
참조 URL : https://stackoverflow.com/questions/6172205/how-can-i-do-a-parallel-build-in-visual-studio-2010
'programing' 카테고리의 다른 글
iOS 4.2+ 웹 폰트 (ttf)의 굵은 글꼴 두께 렌더링 버그 (0) | 2021.01.15 |
---|---|
단항 더하기 및 빼기 연산자의 중요한 용도는 무엇입니까? (0) | 2021.01.15 |
C ++ 11은 std :: function 또는 lambda 함수가 관련된 경우 유형을 추론하지 않습니다. (0) | 2021.01.15 |
녹아웃 : 계산 된 관찰 가능 vs 함수 (0) | 2021.01.15 |
PDO bindParam 대 실행 (0) | 2021.01.15 |