سؤال

لقد حصلت للتو على جهاز كمبيوتر رباعي النواة جديد ولاحظت أن nmake يستخدم عملية واحدة فقط.

اعتدت على استخدام make الذي يحتوي على المفتاح -j4 لبدء 4 عمليات.ما هو ما يعادل nmake؟

تحرير] بناءً على المعلومات أدناه ، تمكنت من إضافة أمر إلى ملف مشروع QMake الخاص بي:

QMAKE_CXXFLAGS += /MP

الذي فعل ذلك بفعالية بالنسبة لي.تشكرات.

هل كانت مفيدة؟

المحلول

ووفقا ل MSDN ، وليس هناك هذا الخيار لnmake.

ولكن يمكنك جعل المترجم إنشاء ملفات متعددة في نفس الوقت باستخدام الخيار /MP مع المترجم سطر الأوامر VC ++ وتمرير ملفات متعددة في نفس الوقت:

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

ولكن نلاحظ أن معظم Makefiles لا استدعاء مترجم مثل هذا - أنها المعتاد استدعاء مترجم مستقل لكل ملف مصدر الفردي، الذي من شأنه أن يمنع الخيار /MP من القيام بأي شيء مفيد

.

نصائح أخرى

وهناك طريقة أخرى عامة، غير كيو تي ذات الصلة أن أقول nmake لاستخدام كافة النوى هو وضع CL متغير البيئة ل/MP:

set CL=/MP
nmake

وسوف تستخدم جميع وحدات المعالجة المركزية.

وQT وأداة المفترض لهذا http://qt.gitorious.org/qt-labs/jom

CMake 2.8.1 RC1 ، أما بالنسبة لل وقت كتابة هذا انها على استعداد للمحاولة، لا تجلب مولد جديد لNMAKE وهو ما يسمى <لأ href = "http://www.cmake.org/pipermail/cmake/2010-February/035021.html" يختلط = "noreferrer" > NMAKE Makefiles JOM وأنه يولد NMAKE مع إعدادات محددة لجوم، والذي هو قطرة في استبدال NMAKE. وبالتالي، فإنه يعطي بناء تمكين متعدد المعالجة باستخدام NMAKE.

Incredibuild يدعي أن تكون قادرة على تشغيل NMAKE يبني على النوى المتعددة / آلات متعددة. ليس لدي أي خبرة منه.

لا يعمل هذا مع ملفات makefiles العادية، ولكن يوجد إعداد في Visual Studio 2005 يسمح لك بإنشاء أكثر من ملف .vcproj في نفس الوقت (شريطة ألا يعتمد أحدهما على الآخر).الأدوات -> الخيارات -> المشاريع والحلول -> البناء والتشغيل -> X الحد الأقصى لعدد بنيات المشروع الموازي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top