2012-04-20 15 views
15

के बीच एक सी ++ समाधान साझा करना मेरे और मेरे साथी दोनों साझा कर रहे हैं तोड़फोड़ के माध्यम से एक C++ समाधान।दृश्य स्टूडियो 2010 और 11

वह दृश्य स्टूडियो 11 उपयोग कर रहा है और मैं दृश्य स्टूडियो 2010

उपयोग कर रहा हूँ पहली बार के बाद वह प्रतिबद्ध और मैं अद्यतन, मैं निम्नलिखित त्रुटि मिलती है: भी

Error 31 error MSB8008: Specified platform toolset (v110) is not installed or invalid. Please make sure that a supported PlatformToolset value is selected.

में, हेडर फाइल मैं #include <stdio.h> पर निम्न त्रुटि मिलती है:

error: cannot open source file "stdio.h"

मुझे लगता है कि यह एक संगतता मुद्दा है। हम इसे कैसे हल कर सकते हैं?

+0

आपको सीएमके जैसे कुछ का उपयोग करना चाहिए और प्रत्येक वांछित वीएस संस्करण – relaxxx

उत्तर

30

दृश्य स्टूडियो 11 में एक संपत्ति विकल्प है कि आप मंच टूलसेट निर्दिष्ट कर सकते हैं नहीं है।

मंच टूलसेट V110 डिफ़ॉल्ट रूप से प्रयोग किया जाता है यदि आप दृश्य स्टूडियो 11 से शुरू होने वाले एक नया प्रोजेक्ट बना है, लेकिन अगर दृश्य स्टूडियो द्वारा प्रयोग किया जाता है कि V100 को बदल सकते हैं 2010.

Toolset option

+0

जब आप पहली बार वीसी ++ 2012 में मौजूदा 2010 प्रोजेक्ट खोलते हैं, तो यह प्लेटफॉर्म टूलसेट को v110 पर "मददगार" सेट करेगा। इस तरह मैं इस क्यू एंड ए को स्टैक ओवरफ्लो पर मिला - यह पता लगाने की कोशिश कर रहा था कि वीसी ++ 2012 ने "सीमलेस राउंड ट्रिप" का विज्ञापन करने के बावजूद मेरी परियोजना को कैसे तोड़ दिया। त्रुटि संदेश ने मुझे केवल सही प्लेटफ़ॉर्म टूलसेट निर्दिष्ट करने के लिए कहा है कि इसका कोई मतलब नहीं है कि इसका क्या अर्थ है या इसे कैसे निर्दिष्ट किया जाए। बेशक माइक्रोसॉफ्ट दस्तावेज बेकार था। लेकिन अच्छे पुराने DuckDuckGo.com पर googling और Stackoverflow हिट पर क्लिक करने से दिन बचाया। –

+0

पी। कौन जानता था कि कुछ दौर यात्राएं सीम हैं? किसी भी मामले में, प्लेटफार्म टूलसेट आइटम वीएस 2010 के तहत दिखाया गया है, और इसे वापस v100 पर सेट करना ठीक काम करता है। –

+2

ध्यान दें कि इसे v100 rquires VS2010 पर स्थापित करने के लिए सेट किया गया है। – JohnW

3

.sln और .vcxproj दृश्य स्टूडियो 11 में सहेजी गई फ़ाइलों VS2010 साथ पार्श्व-संगत नहीं हैं। भले ही वे संगत थे, अंततः आप एक कोड में कदम उठाएंगे जो वीएस 11 में संकलित है लेकिन वीएस 10 में नहीं है।

सबसे अच्छा (और शायद केवल) तरीका बिल्कुल वैसा ही विकास के वातावरण का उपयोग करने पर सहमत होने के लिए है।

+1

के लिए अपना स्वयं का समाधान उत्पन्न करना चाहिए जैसा कि मैं समझता हूं, यदि आपके पास स्वचालित अपडेट चल रहे हैं, तो माइक्रोसॉफ्ट ने वीसी -2010 को पैच किया ताकि यह और वीसी2012 समान प्रारूपों का उपयोग कर सके।मैं अब वीसी ++ 2010 में "प्लेटफार्म टूलसेट" देखता हूं, और मुझे पहले वहां इसे याद रखना याद नहीं है। –

0

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

आप समाधान और परियोजना फ़ाइलें निकालने के लिए निर्णय लेते हैं, एक बात पर विचार करना YourApp.sln.2010 के रूप में मूल YourApp.sln की एक प्रति की बचत है। तो फिर तुम परियोजनाओं और समाधान करने के लिए से भविष्य समाधान है, लेकिन अद्यतन बीज के लिए कुछ VS 2010 से किया जाएगा सभी की जरूरत है और फ़ाइल फिर उनके .2010 संस्करण के लिए नकल की और मैन्युअल रूप से बनाए रखा होगा।

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

0

ड्रेक के समाधान मेरे लिए काम नहीं किया के रूप में समाधान में सभी परियोजनाओं के लिए गुण पहले से ही सही ढंग से V100 के लिए निर्धारित किया गया। हालांकि, ठीक है कि काम किया है बनाता है साफ और अन्य सभी फ़ाइलों को फाइल या प्रोजेक्ट फ़ाइलें स्रोत नहीं कर रहे थे दूर करने के लिए किया गया था। मैं यह शायद था फ़ाइलें projname.vcxproj.user कि, यह भी निश्चित रूप शायद toolchain वरीयता किसी भी तरह उपयोगकर्ता वरीयताओं में ओवरराइड था हटाने के बारे में सोचो।

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