52

एक समय में एक से अधिक सी ++ संकलन प्रक्रिया चलाने के लिए मैं वीएस 2010 कैसे प्राप्त कर सकता हूं? मेरा मतलब है समानांतर में ऑब्जेक्ट मॉड्यूल बनाना; मुझे एक समय में एक से अधिक प्रोजेक्ट बनाने में दिलचस्पी नहीं है (मुझे उपकरण> विकल्प> बिल्ड और रन < समानांतर परियोजना निर्माण की अधिकतम संख्या के बारे में पता है, लेकिन यह वही नहीं करता जो मैं चाहता हूं)।मैं विजुअल स्टूडियो 2010 में समानांतर निर्माण कैसे कर सकता हूं?

असल में, मैं विजुअल स्टूडियो के "मेक-जेएनएन" के बराबर देख रहा हूं।

+1

http://msdn.microsoft.com/en-us/library/bb385193.aspx – Necrolis

+0

बस में छिल हो सकता है कि इस मदद करता है [कड़ी] (http पाते हैं। msdn.com/b/visualstudio/archive/2010/03/08/tuning-c-build-parallelism-in-vs2010.aspx) – ervinbosenbacher

उत्तर

30
  1. उपकरण -> विकल्प
  2. परियोजनाओं और समाधान \ कुलपति ++ परियोजना सेटिंग्स
  3. अधिकतम समवर्ती सी ++ संकलन

इसके अलावा, जैसा रॉस स्मिथ टिप्पणी में कहा, आप भी चालू करने की आवश्यकता "बहु-संकलन" परियोजना पर विकल्प:

  1. प्रोजेक्ट के गुण
  2. कॉन्फ़िगरेशन गुण> सी/सी ++> सामान्य
  3. मल्टी प्रोसेसर संकलन
  4. लाभ!
+2

इसका कोई प्रभाव नहीं पड़ता है। इसे 0 पर सेट करना (डिफ़ॉल्ट, जिसका अर्थ है "सभी कोर का उपयोग करें") या 4 (कोर की वास्तविक संख्या) कोई फर्क नहीं पड़ता है, यह अभी भी एक समय में केवल एक मॉड्यूल बनाता है। –

+1

@Ross: जब उस तरह की समांतर इमारत प्रभावी होती है, तो यह कंसोल आउटपुट में दिखाई नहीं देती है (परियोजना समानांतर बनाता है)। क्या आपने सत्यापित किया है कि यह कार्य प्रबंधक को देखने के आधार पर नहीं हो रहा है या आप कंसोल पर कुछ भी नहीं देख रहे हैं? आपको कोर के रूप में 'cl.exe' की वही संख्या दिखाई देनी चाहिए। –

+0

मैंने इसे प्रोसेस एक्सप्लोरर में देखा, केवल एक cl.exe प्रक्रिया है और यह केवल चार कोरों में से एक का उपयोग कर रही है। –

3

जोम वह टूल है जिसे आप ढूंढ रहे हैं।

विकि से पर: http://qt-project.org/wiki/jom

jom nmake का क्लोन समानांतर में कई स्वतंत्र आदेशों के निष्पादन का समर्थन करने के लिए है। यह मूल रूप से जीएनयू बनाने के समान -j कमांड लाइन स्विच जोड़ता है।

प्रलेखन के सबसे क्यूटी डेवलपर्स के उद्देश्य से है जबकि क्यूटी पुस्तकालय में तेजी लाने की कोशिश कर खिड़कियों पर बनाता है, jom पूरी तरह से अच्छी तरह से गैर क्यूटी परियोजनाओं में भी जब तक आप एक nmake संगत makefile है के रूप में काम करना चाहिए,।

विकी पेज में द्विआधारी हैं जिन्हें आप डाउनलोड कर सकते हैं, और आप जोम को कॉल करते हैं, जिसे आप कॉल करते हैं।

+0

दुर्भाग्य से मैंने पाया कि जोम बहुत छोटी गाड़ी है और अक्सर यह नहीं मिलता है कि एक प्रक्रिया समाप्त हो गई है जब तक कि दुनिया के अंत तक खुद को लटका नहीं दिया जाता है। – Lothar

14

नेक्रोलिस की टिप्पणी सही समाधान प्रतीत होती है।

/MP (Build with Multiple Processes)

/एमपी विकल्प के लिए एक अलग प्रक्रिया में के एक या अधिक प्रतियां ही है, प्रत्येक बनाने के लिए संकलक का कारण बनता है। इन प्रतियों को एक साथ स्रोत फ़ाइलों को संकलित करें। नतीजतन, स्रोत फ़ाइलों को बनाने के लिए कुल समय काफी कम किया जा सकता है।

नोट आप अलग-अलग फ़ाइलों के रूप में परियोजना स्तर पर यह सेट है कि कर सकते हैं (और इस प्रकार यह उस में सभी फाइलों पर लागू होगा) के साथ-साथ, उदाहरण के लिए उपयोगी आप #import उपयोग करने की आवश्यकता है।

विशेष रूप से,/एमपी आमतौर पर precompiled हेडर, या #import का उपयोग कर स्रोतों के साथ संगत नहीं है; इस मामले में, आप अभी भी प्रोजेक्ट पर/एमपी ध्वज सेट कर सकते हैं, और उसके बाद इसे एकल फ़ाइलों (आमतौर पर, stdafx.cpp, और #import का उपयोग कर किसी भी फ़ाइल) पर साफ़ कर सकते हैं।

4

यहाँ है कि मैं क्या

1 किया है) उपकरण के तहत की तुलना में> विकल्प "परियोजना और समाधान" के लिए जाओ - मेरे लिए> "का निर्माण और भागो" यह कोर की संख्या थी। हालांकि पहले मैंने सोचा था कि यह सब मुझे करने की ज़रूरत थी, लेकिन यह

2) अपनी परियोजना पर राइट क्लिक करें और गुणों का चयन करें। "कॉन्फ़िगरेशन गुण" के अंतर्गत -> "सी/सी ++" -> "कमांड लाइन" /MP4 दर्ज करें जहां 4 आपके पास कोर की संख्या है। आपको झंडे के बारे में कोई चेतावनी नहीं मिलेगी, इसलिए हमारे पास एक और चरण

3) "कॉन्फ़िगरेशन गुण" -> "सी/सी ++" -> "कोड जनरेशन" के अंतर्गत जाएं "न्यूनतम पुनर्निर्माण सक्षम करें"। इसे बदलने के लिए।

पुनर्निर्माण और आपको अपने कार्य प्रबंधक में एकाधिक सीएल प्रक्रियाएं देखना चाहिए।

15

(दोनों कर रहे हैं परियोजना विशेष) दो स्विच कि वी.एस. multithreading का उपयोग निर्माण बनाने के लिए क्रम में सेट किया जाना चाहिए रहे हैं:

  • परियोजना गुण> C/C++ -> जनरल>मल्टी प्रोसेसर संकलन सेट करने के लिए: हाँ (/ मध्य प्रदेश)
  • परियोजना गुण> C/C++ -> कोड पीढ़ी>सक्षम मिनिमल को सेट के पुनर्निर्माण: नहीं (/ Gm-)

अपने टूल्स-> विकल्प-> परियोजनाएं और समाधान-> वीसी ++ परियोजना सेटिंग्स->अधिकतम समवर्ती सी ++ संकलन सेटिंग को भी जांचें। डिफ़ॉल्ट मान 0 है जो वीएस को यथासंभव अधिक समेकित संकलनों का उपयोग करने में सक्षम बनाता है।

+2

बहु-प्रोसेसर संकलन का उपयोग करने के लिए आपको न्यूनतम पुनर्निर्माण अक्षम करने की आवश्यकता कब होती है? –

+0

हमेशा क्योंकि वे असंगत हैं। – dimon4eg

0

मुझे लगता है! आपकी आवश्यकता समानांतर धागे में एकल परियोजना का निर्माण कर रही है। । // ब्लॉग:

मैं Shark compiler Control प्लगइन बहुत उपयोगी

संबंधित मुद्दे