c++ - विजुअल स्टूडियो 2012 का उपयोग करें और पुराने प्लेटफार्म टूलसेट के साथ संकलित करें?




visual-studio dll (3)

समस्या

मैं सी ++ डीएलएल विकसित करने के लिए विजुअल स्टूडियो 2012 का उपयोग कर रहा हूं। कुछ मशीनों पर इन डीएलएल को लोड नहीं किया जा सकता है, क्योंकि प्लेटफ़ॉर्म टूलसेट, जो "v110" पर सेट है, गायब है।

मैंने पुराने सी ++ रनटाइम्स को स्थापित करने का प्रयास किया है। उन्होंने इंस्टॉल नहीं किया क्योंकि "एक नया संस्करण पहले से स्थापित है"। मैंने वर्तमान विंडोज एसडीके भी स्थापित किया है, लेकिन v110 से चुनने के लिए अभी भी कोई अन्य आइटम नहीं है।

सवाल

मैं अपने सी ++ डीएलएल को सी ++ रनटाइम के पुराने संस्करण के साथ कैसे संकलित कर सकता हूं ताकि यह गैर-डेवलपर मशीनों पर चल सके?


अच्छा यह निर्भर करता है कि आप क्या बनाने की कोशिश कर रहे हैं। कुछ चीजें शायद विंडोज एसडीके 7.1 स्थापित करने के माध्यम से समर्थित हैं। इस पोस्ट को एक ही प्रश्न देखें , लेकिन यदि आपकी परियोजना एमएफसी पर निर्भर है तो दुर्भाग्यवश ऐसा लगता है कि यह संभव नहीं है, मुख्य रूप से क्योंकि कुछ भी नहीं, लेकिन वीएस -2010 एमएफसी पुस्तकालयों को तैनात कर रहा है।


मैं कुछ जानकारी साझा करना चाहता हूं, जो मैंने पार किया और यह पता लगाया कि मेरे उद्देश्य के लिए उनका उपयोग कैसे किया जाए।

स्पष्ट रूप से यह स्थिर लिंकिंग का उपयोग करने का एक अच्छा विकल्प है। यह हमेशा मेरे लिए काम नहीं करता था, लेकिन मेरी एक छोटी परियोजना के लिए, यह काफी अच्छा काम करता है। और परिणाम एक DLL है जिसमें kernel32.dll अलावा कोई निर्भरता नहीं है।

बस रिलीज कॉन्फ़िगरेशन के लिए /MT /MTd डीबग के लिए /MTd उपयोग करें और आप ठीक होंगे।

यहां समस्या यह है कि मेरे जैसे डेवलपर को रिलीज के कुछ ही समय बाद वर्तमान विजुअल स्टूडियो संस्करण मिलता है, लेकिन आप वास्तव में सामान्य उपयोगकर्ताओं को रनटाइम स्थापित करने की उम्मीद नहीं कर सकते हैं जो केवल कुछ हफ्ते पुरानी हैं। और पुराने रनटाइम का उपयोग करने के लिए केवल विजुअल स्टूडियो के विभिन्न संस्करणों को स्थापित करना निश्चित रूप से आप नहीं चाहते हैं।


इंटरनेट संग्रह के लिए एक संकेत। (मैं ऊपर दिए गए बयान पर टिप्पणी नहीं कर सकता, मुझे नहीं पता क्यों)

एक नए विजुअल स्टूडियो (आई टेस्टेट 2013 और 2015) में v90 प्लेटफ़ॉर्म टूलसेट (= विजुअल स्टूडियो 2008) का उपयोग करने के लिए आपको विजुअल स्टूडियो 2008 और इसके अतिरिक्त विजुअल स्टूडियो 2010 को स्थापित करने की आवश्यकता है, क्योंकि एमएस बिल्ड प्रोग्राम फ़ोल्डर में बनाम 9 0 प्लेटफ़ॉर्म टूलसेट परिभाषाएं हैं भाग वॉन विजुअल स्टूडियो 2010।

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\PlatformToolsets v90 और v100 के लिए C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\PlatformToolsets

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0

वी 110 वी 120 और वी 140 के लिए

विजुअल स्टूडियो संस्करणों का प्रतिनिधित्व करना: v90 = 2008, v100 = 2010, V110 = 2012, V120 = 2013, V140 = 2015।

इंस्टॉलेशन vob VS2010 के बाद नया विजुअल स्टूडियो 2013 और 2015 संस्करण बनाम 9 0 और बनाम 100 प्लेटफ़ॉर्म टूलसेट का उपयोग कर सकता है। (यह विजुअल स्टूडियो 2013/2015 की एक नई स्थापना के बिना immidiadtly काम करता है।) मुझे लगता है कि विजुअल स्टूडियो 2012 इसे VS2013 और VS2015 जैसा ही कर रहा है।








visual-c++-runtime