Как мне использовать все ядра для nmake?
Вопрос
Я только что получил новый четырехъядерный компьютер и заметил, что nmake использует только 1 процесс.
Раньше я использовал make, у которого был переключатель -j4 для запуска 4 процессов.Что такое эквивалент nmake?
[редактировать] Основываясь на приведенной ниже информации, я смог добавить команду в файл моего проекта qmake:
QMAKE_CXXFLAGS += /МП
Который эффективно сделал это за меня.Большое спасибо.
Решение
Согласно MSDN, такой опции для nmake
.
Однако вы можете заставить компилятор создавать несколько файлов параллельно, используя /MP
опция с компилятором командной строки VC ++ и одновременной передачей нескольких файлов:
> cl /MP a.cpp b.cpp c.cpp
Однако обратите внимание, что большинство Makefile-файлов не вызывают компилятор подобным образом - обычно они вызывают компилятор отдельно для каждого отдельного исходного файла, что предотвратило бы /MP
возможность не делать ничего полезного.
Другие советы
Еще один общий, не связанный с Qt способ сообщить nmake
чтобы использовать все ядра, необходимо установить переменную среды CL
Для /MP
:
set CL=/MP
nmake
будут использоваться все ядра процессора.
У QT есть инструмент, предназначенный для этого http://qt.gitorious.org/qt-labs/jom
Тот Самый CMake 2.8.1 RC1, что касается момента написания этой статьи, то она готова попробовать, действительно приносит новый генератор для NMake, который называется NMake Создает файлы JOM и он генерирует NMake с определенными настройками для jom, что является заменой NMake.Таким образом, это обеспечивает построение с поддержкой нескольких процессов с использованием NMake.
Невероятное Строительство утверждает, что может запускать сборки nmake на нескольких ядрах / нескольких машинах.У меня нет никакого опыта в этом.
Быстрый поиск в Google дает: http://msdn.microsoft.com/en-us/library/bb385193.aspx
Это не работает для обычных make-файлов, но в Visual Studio 2005 есть настройка, которая позволяет создавать более одного файла .vcproj одновременно (при условии, что один не зависит от другого).Инструменты -> Параметры -> Проекты и решения -> Сборка и запуск -> X максимальное количество параллельных сборок проекта.