विजुअल स्टूडियो 2008 में एक सीजीआई एप्लिकेशन लिखने और इसे स्थानीय रूप से डीबिज करने के बिना सी ++ बाइनरी चलाना, मैंने इसे विंडोज सर्वर 2003 ओएस पर अपलोड किया जहां यह तुरंत चलाने में असफल रहा।रनटाइम पुनर्वितरण योग्य (Server2k3, XPSP3)
मैं अनुमान लगा रहा हूँ मैं नीच क्रम वितरण स्थापित करने की आवश्यकता है, लेकिन यह पढ़ने के बाद:
http://kobyk.wordpress.com/2007/07/20/dynamically-linking-with-msvcrtdll-using-visual-c-2005/
मैं सोच रहा हूँ अगर यह अधिक समझ में आता है ओर सामान से इस पक्ष की अनदेखी करने और बस फिर से लिखने अप्प।
मुझे लगता है कि विंडोज सर्वर 2003 में एमएससीआरवीटी संस्करण की आवश्यकता नहीं है? क्या विंडोज सर्वर 2003 में यह है?
जब मोटी क्लाइंट्स को तैनात करने की बात आती है, तो मैं अपने ऐप के साथ आवश्यक डीएलएस वितरित करना चाहता हूं। वे क्या मान रहे हैं कि मैं सिर्फ iostream, sstream, स्ट्रिंग शामिल है?
यदि मैं windows.h जोड़ता हूं तो क्या यह महत्वपूर्ण रूप से बदलता है?
जोड़ा गया:
/मीट्रिक टन स्विच का उपयोग करते हुए नीचे
सी की सिफारिश की/C++ -> कोड पीढ़ी -> रनटाइम लाइब्रेरी -> मल्टी पिरोया (/ एमटी)
(आप शायद आवश्यकता होगी एक साफ करने के लिए:
बिल्ड - क्रम त्रुटि संदेश से बचने के लिए> स्वच्छ
"अद्यतन मैनिफेस्ट को फ़ाइल में सहेजने में विफल")
मेरा ऐप 38k से 573k तक फूला। जो चीजें मैं महत्वपूर्ण कहता हूं (कल्पना करें कि वह आपका वेतन था)। चूंकि इस ऐप के कई उदाहरण लगातार लोड हो जाएंगे और अनलोड किए जाएंगे (कीमती मेमोरी और प्रोसेसर संसाधनों की आवश्यकता होगी) मैं एक बेहतर (छोटा) समाधान ढूंढना चाहता हूं।
मुझे लगता है कि आज कई स्थितियों के लिए यह महत्वपूर्ण नहीं है और कई डेवलपर्स का ध्यान नहीं है, इसलिए एनओटी और 60 एमबी रनटाइम की प्रवृत्ति है, लेकिन यही वह है जो मैं करना चाहता हूं।
जोड़ा गया:
डिबगिंग को हटाने संकलित करने के लिए परियोजना को पाने के लिए के बाद:
परियोजना -> propeties -> C/C++ -> प्रीप्रोसेसर -> प्रीप्रोसेसर परिभाषाएं (हटाने डीबग;)
आकार 300k तक कम हो गया था, और यह चला जाएगा।
जोड़ा गया: नीचे क्रिस Becke ने सुझाव दिया के रूप में, नकल: msvcm90.dll msvcp90.dll msvcr90.dll Microsoft.VC90.CRT.manifest आवेदन की निर्देशिका करने के लिए सभी क्रम की जरूरत प्रदान करेगा।
विजुअल स्टूडियो 6 का उपयोग कुछ बार सुझाया गया है, लेकिन यह विस्टा (या विंडोज 7 हम मानते हैं) का समर्थन नहीं करता है अन्य समाधान जिन्हें रनटाइम वितरित करने की आवश्यकता नहीं है, शायद मुझे एमएएसएम या बेसिक का स्वाद भी होगा।दुर्भाग्य से सी ++ जैसे उच्च स्तर की ओओपी भाषा का उपयोग करने के उद्देश्य को हराया जाता है।
जब तक मुझे सी ++ पुनर्वितरण योग्य स्थापित करने की आवश्यकता होती है, तो व्यापार बंद अतिरिक्त 260k है। यही स्वीकार्य
क्या * क्या * महत्वपूर्ण रूप से बदलता है? बहुत अधिक, वीएस 2008 के साथ आपके द्वारा बनाई गई लगभग कुछ भी रनटाइम इंस्टॉल की आवश्यकता होगी। – Joe
आपको रनटाइम की आवश्यकता होगी लगभग कोई फर्क नहीं पड़ता। आपकी पसंद * कैसे * आप इसे शामिल करते हैं। सबसे सुविधाजनक तरीका सांख्यिकीय रूप से जुड़े संस्करण का उपयोग करना है। तो आपको बिल्कुल अलग डीएल वितरित करने की ज़रूरत नहीं है। विफल होने के कारण, आपके पास डीएलएल वितरित करने के आधे मिलियन तरीके हैं। सुपर-जटिल साइड-बाय-साइड चीज से लेकर, जिसमें दस्तावेज़ों के 15 पृष्ठों को पढ़ने की आवश्यकता होती है, इसे अपने ऐप के रूट फ़ोल्डर में सही नाम वाले फ़ोल्डर में डालने के लिए, जो कि बहुत प्रबंधनीय है। – jalf
मुझे यकीन नहीं है कि यह कितना प्रभावी होगा, लेकिन कंपाइलर/लिंकर विकल्पों के साथ झुकाव करने का प्रयास करें। कुछ ऐसे थे जो निष्पादन योग्य आकार को प्रभावित करते थे (आकार के लिए अनुकूलित करने और अप्रयुक्त सामग्री को हटाने के बारे में कुछ)। –