Как мне использовать все ядра для nmake? - PullRequest
42 голосов
/ 02 марта 2009

Я только что получил новый четырехъядерный компьютер и заметил, что nmake использует только 1 процесс.

Раньше я использовал make с переключателем -j4 для запуска 4 процессов. Что такое эквивалент Nmake?

[править] Основываясь на информации ниже, я смог добавить команду в мой файл проекта qmake:

QMAKE_CXXFLAGS + = / MP

Который фактически сделал это для меня. Большое спасибо.

Ответы [ 7 ]

42 голосов
/ 13 мая 2014

Другой общий, не связанный с Qt способ сказать nmake использовать все ядра - установить переменную окружения CL в /MP:

set CL=/MP
nmake

будет использовать все ядра процессора.

33 голосов
/ 28 июня 2009

QT имеет инструмент, предназначенный для этого http://qt.gitorious.org/qt-labs/jom

21 голосов
/ 02 марта 2009

Согласно MSDN , такой опции нет для nmake.

Однако вы можете заставить компилятор строить несколько файлов параллельно, используя опцию /MP с компилятором командной строки VC ++ и передавая несколько файлов одновременно:

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

Однако обратите внимание, что большинство Make-файлов не вызывают компилятор подобным образом - они обычно вызывают компилятор отдельно для каждого отдельного исходного файла, что не позволяет опции /MP делать что-либо полезное.

7 голосов
/ 13 февраля 2010

CMake 2.8.1 RC1 , поскольку на момент написания этой статьи он готов попробовать, он приносит новый генератор для NMake, который называется NMake Makefiles JOM , и генерирует NMake с конкретными настройками для Jom, который является падение замены NMake. Таким образом, это дает возможность мультипроцессорной сборки с использованием NMake.

6 голосов
/ 03 марта 2009

Incredibuild утверждает, что может запускать сборки nmake на нескольких ядрах / нескольких машинах. У меня нет никакого опыта этого.

4 голосов
/ 02 марта 2009

Быстрый поиск в Google дает: http://msdn.microsoft.com/en-us/library/bb385193.aspx

3 голосов
/ 05 марта 2009

Это не работает для обычных make-файлов, но в Visual Studio 2005 есть параметр, позволяющий создавать более одного файла .vcproj одновременно (при условии, что один не зависит от другого). Сервис -> Параметры -> Проекты и решения -> Построить и запустить -> X максимальное количество параллельных сборок проекта.

...