30

आईडीई का उपयोग किए बिना विजुअल स्टूडियो एक्सप्रेस 2010 सी ++ कंपाइलर का उपयोग करने की कोशिश कर रहा हूं। मुझे सी: \ प्रोग्राम फ़ाइलें (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin में cl.exe मिला। हालांकि कुछ कठिनाइयों का सामना करना पड़ रहा है। सबसे पहले यह मुझे एक चेतावनी पॉप अप देता है जब मैं कहता हूं कि 'प्रोग्राम शुरू नहीं हो सकता है क्योंकि mspdb100.dll आपके कंप्यूटर से गायब है।'cl.exe का उपयोग कर कमांड लाइन संकलित?

तो मैं जोड़ने C: \ Program Files (x86) \ माइक्रोसॉफ्ट विजुअल स्टूडियो 10.0 \ Common7 \ सिस्टम पथ को आईडीई और फिर पुन: प्रयास, लेकिन इस बार:

गंभीर त्रुटि C1510: भाषा लोड नहीं कर सकता संसाधन clui.dll।

कोई विचार यह कैसे हल करें ताकि मैं संकलित कर सकूं? मैं पथ को कैसे स्थापित करूं ताकि मैं केवल 'cl main.cpp' आदि टाइप कर सकूं, एक समाधान फ़ोल्डर के भीतर जिसमें cl.exe शामिल नहीं है। फिलहाल मुझे बिन फ़ोल्डर के अंदर होना होगा। धन्यवाद।

+8

क्या वीएस सभी सही सेटिंग्स के साथ एक cmd खोल के लिए शॉर्टकट/मेनू प्रविष्टि स्थापित नहीं करता है? – Mat

+1

वीएस फ़ोल्डर के अंदर एक win32_all_vars.bat या sth है, इसे निष्पादित करें और पुनः प्रयास करें। – Xeo

+0

@ मेट: हाँ, लेकिन यह बिल्कुल एक सुरुचिपूर्ण समाधान नहीं है। –

उत्तर

49

Start-> 
    All Programs -> 
     Microsoft Visual Studio 2010 -> 
      Visual Studio Tools -> 
       Visual Studio Command Prompt 2010 

वैकल्पिक रूप से दृश्य स्टूडियो कमांड प्रॉम्प्ट शुरू करने का प्रयास आप एक कमांड प्रॉम्प्ट में इस चलाकर पर्यावरण सेट कर सकते हैं,:

"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 

(ध्यान दें: इस अपने वातावरण छोड़ देंगे चलने के बाद स्थापित करें।)

(नोट 2: वांछित के रूप में x86 बदलें। विकल्प x86,हैं, amd64, x86_amd64, x86_ia64)

वहां से आप cl.exe चला सकते हैं। यदि आप चाहते हैं यह स्वचालित रूप से किया जा करने के लिए और पूर्ववत जब भी आप cl चलाने के लिए, इस सामग्री के साथ एक बैच फ़ाइल बनाएँ:

@echo off 
%comspec% /c ""c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 && cl.exe %*" 

(/c कमांड प्रॉम्प्ट बताता है इस आदेश चलाने के बाद सत्र को समाप्त करने, इसलिए अपने वातावरण रिटर्न सामान्य। तक)

वहाँ से, यह cl.bat नाम। कहीं एक फ़ोल्डर में इस रखो, और अपने PATH वातावरण चर को उस फ़ोल्डर के लिए पथ जोड़ने के लिए, सुनिश्चित करें कि यह जब भी आप टाइप करने के बजाय cl.exe

मैं cl ताकि इस cl.bat निष्पादित किया जाता है, cl.exe के लिए पथ से पहले आता है अनुशंसा करते हैं कि आप अपने system32/ फ़ोल्डर में cl.bat डाल दें, यह डिफ़ॉल्ट स्थापना पर cl.exe के पथ से पहले आना चाहिए।

वैकल्पिक रूप से, आप इसे किसी भी क्रम में जोड़ सकते हैं और हमेशा cl.bat टाइप करें, या इसे किसी अन्य नाम दें ताकि कोई भ्रम न हो।के रूप में jsvk सुझाव

4

बस vcvarsall.bat का उपयोग करें:

"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 

उसके बाद, devenv.exe का उपयोग अपना सामान के निर्माण के लिए करता है, तो आप अपने आप को सिर दर्द का एक बहुत से सुरक्षित रखने के:

devenv solutionfile.sln /build [ solutionconfig ] [ /project projectnameorfile [ /projectconfig name ] ] 

वहाँ एक हैं अन्य कमांड लाइन स्विच जो आप devenv /? के साथ जांच सकते हैं।

4

मेरे पास वीएस के कई संस्करण स्थापित हैं; मैं थोड़ा सा बना देता हूं। प्रत्येक संस्करण के लिए बीएटी फ़ाइल, पथ में कहीं भी रखा गया है, जो प्रासंगिक "vcvarsall.bat" को कॉल करता है। जैसे VS2008 के लिए "vc9.bat" vcvarsall.bat को कॉल करता है, जबकि "vc10.bat" VSvarsall.bat को VS2010 के लिए कॉल करता है। मैं सामान्य रूप से एक सामान्य कमांड विंडो खोल सकता हूं, "vc9" टाइप करें, और presto, वह कमांड विंडो VS2008 का उपयोग करके संकलित करने के लिए तैयार है।

+0

यह एक अच्छा विचार है, मैं नहीं जानता पता है कि मैंने पहले ऐसा क्यों नहीं किया है। –

+0

क्या हम आपकी बैच फ़ाइल देख सकते हैं? शायद एक गिथब गिस्ट या कोड पेस्टी? –

4

यह एक काफी सरल और स्ट्रेट आगे का कार्य है। सबसे पहले सिस्टम पथ में कंपाइलर पथ जोड़ें .:C:\Program फ़ाइलें \ Microsoft Visual Studio 10.0 \ VC \ bin; अगला, ओपन कमांड प्रॉम्प्ट और निर्देशिका को अपने स्रोत फ़ोल्डर में बदलें; फिर x86 पर vC++ का उपयोग करने के लिए वातावरण को सेटअप करने के लिए vcvars32.bat फ़ाइल निष्पादित करें; इसके बाद, अब आप अपने प्रोग्राम को संकलित करने के लिए cl टाइप कर सकते हैं

0

यह त्रुटियां तब होती हैं जब लिंकर स्मृति से बाहर हो जाता है।
आप x64 टूल आर्किटेक्चर विजुअल स्टूडियो टूल्स का उपयोग कर सकते हैं।

MSBuild कमांड लाइन:

msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64 

या, बेहतर अभी तक, .vcxproj में परियोजना की सेटिंग में जोड़ें।
संकलक और उपकरणों की 64-बिट संस्करण निर्दिष्ट करने के लिए, Microsoft.Cpp.default.props तत्व के बाद Myproject.vcxproj परियोजना फ़ाइल में निम्न संपत्ति समूह तत्व जोड़:

<PropertyGroup> 
    <PreferredToolArchitecture>x64</PreferredToolArchitecture> 
</PropertyGroup> 

ये विकल्प कर देगा विजुअल स्टूडियो (लक्ष्य वास्तुकला के अनुसार) amd64 वास्तुकला फ़ोल्डर के अंतर्गत उपकरणों का उपयोग:
कुलपति \ बिन \ amd64
कुलपति \ बिन \ amd64_x86
कुलपति \ बिन \ amd64_arm

https://msdn.microsoft.com/en-us/library/dd293607.aspx

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