2009-03-02 3 views
41

방금 ​​새로운 쿼드 코어 컴퓨터를 가지고 nmake가 1 개의 프로세스 만 사용하고 있음을 알았습니다.nmake 용 코어를 어떻게 활용합니까?

4 개의 프로세스를 시작하기 위해 스위치 -j4가있는 make를 사용했습니다. nmake에 상응하는 것은 무엇입니까?

[편집] 내 qmake를 프로젝트 파일에 명령을 추가 할 수 있었다 아래의 정보를 바탕으로 : 효과적으로 나를 위해 그것을했다

QMAKE_CXXFLAGS + =/MP

. 많은 감사합니다.

답변

20

MSDN에 따르면, nmake에 대한 이러한 옵션이 없습니다.

당신은 그러나 VC++ 명령 행 컴파일러와 /MP 옵션을 사용하여 동시에 여러 파일을 전달하여 컴파일러가 병렬로 여러 개의 파일을 구축 할 수

:

> cl /MP a.cpp b.cpp c.cpp 

그러나 대부분의 메이크 그렇지주의 이런 식으로 컴파일러를 호출하십시오. 보통 각 개별 소스 파일에 대해 별도의 컴파일러를 호출하므로 /MP 옵션이 아무 것도 유용하지 못하게됩니다.

+1

.o가 아니라 .obj. VC++ 컴파일러는 .obj, GCC - .o, AFAIK – abatishchev

+15

을 생성합니다.이 플래그를 사용하는 편리한 방법은 cl.exe가 "CL"환경 변수에서이를 검색하도록하는 것입니다. 시스템 속성에 설정하거나 명령 줄에 입력하십시오 : "set CL =/MP" – jturcotte

3

빠른 인터넷 검색을 제공합니다 http://msdn.microsoft.com/en-us/library/bb385193.aspx

+1

컴파일러의 동일한 호출에서 여러 .cpp 파일의 병렬 컴파일 - 여러 'make'대상의 병렬 빌드가 아님 – Alnitak

+0

VS2008에서이 스위치를 전환하는 방법은 매우 흥미 롭습니다! 나는 그것을 찾을 수 없습니다 – abatishchev

+0

그것은 "nmake"옵션이 아니라 "c1"옵션입니다 (즉, 명령 행 컴파일러와 함께 사용) – Alnitak

6

Incredibuild 여러 코어/다중 시스템에서 nmake 빌드를 실행할 수 있다고 주장합니다. 나는 그것에 대한 경험이 없다.

+0

그것은 실제로 매우 간단하고 훌륭하게 작동합니다. 이것은 좋은 참고 자료입니다. http://xoreax.helpserve.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=171 – ttvd

+0

예! 나는 애플 리케이션에서 일했다. 그것은 약 1 시간 20 분 걸렸다. 전체로 컴파일하기. Incredibuild와 약 10 개의 멀티 프로세서 머신, 동일한 앱. 5 분 안에 컴파일. 당신이 나에게 묻는다면 인상적인 개선이 될 것입니다! –

+0

IncrediBuild를 사용하여 nMake를 가속하는 방법에 대한 참조 링크가 [link] (http://xoreax.helpserve.com/staff/Knowledgebase/Article/Edit/105)로 변경되었습니다. 면책 조항 -이 코멘트의 작가는 IncrediBuild에서 작동합니다. – Dori

3

일반 메이크 파일에서는 작동하지 않지만 Visual Studio 2005에서는 동시에 두 개 이상의 .vcproj 파일을 만들 수 있습니다 (하나가 다른 파일과 종속되지 않는다면). 도구 -> 옵션 -> 프로젝트 및 솔루션 -> 빌드 및 실행 ->X 최대 병렬 프로젝트 빌드 수입니다.

32

QT는 도구가 시도 할 준비가이 글을 쓰는 시점에,이 http://qt.gitorious.org/qt-labs/jom

+0

Excellent find !! – SPWorley

+7

미리 컴파일 된 jom 바이너리는 다음 위치에 있습니다. ftp://ftp.qt.nokia.com/jom/ – Lucas

+1

jom의 새로운 홈은 https://wiki.qt.io/Jom입니다. – Hossein

8

CMake 2.8.1 RC1에 대한 가정 한 NMake Makefiles JOM라고 NMAKE에 대한 새로운 발전기를 가지고 수행하고 그것은 JOM에 대한 특정 설정 NMAKE를 생성 , 이는 NMake의 대체 방울입니다. 따라서 NMake를 사용하여 다중 처리가 가능한 건물을 제공합니다.

set CL=/MP 
nmake 

모든 CPU 코어를 사용합니다 :

37

모든 코어를 사용하는 nmake에게 또 다른 일반적인 비 Qt는 관련 방법은 환경 변수 CL/MP로 설정하는 것입니다.

+1

이 명령은 동일한 명령을 사용하여 여러 파일을 컴파일하는 경우에만 도움이됩니다. – Zitrax

+0

@Zitrax : 정확합니다. 일반적으로 프로젝트 (파일 묶음)를 컴파일하여 작동합니다. –

+2

내가 본 프로젝트는 수백 개의 파일을 컴파일하지만, 각각은'cl a.cpp, cl b.cpp, cl c.cpp, ... '와 같은 별도의 cl 명령을 사용한다. 그래서 나는 그것을 지적하고 싶었다. 빌드 시스템이'cl a.cpp b.cpp c.cpp ... '와 같은 각 cl 명령에 여러 개의 파일을 제공하지 않는 한, nmake로 그런 상황에서 도움이되지 않는다. – Zitrax