Подтвердить что ты не робот

Как использовать все ядра для nmake?

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

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

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

QMAKE_CXXFLAGS + =/MP

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

set CL=/MP
nmake

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

Ответ 4

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

Ответ 5

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

Ответ 7

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