2008-09-15 7 views
10

से जीसीसी का उपयोग करना जीसीसी कंपाइलर का उपयोग करने का कोई तरीका है जबकि अभी भी विजुअल स्टूडियो आईडीई के माध्यम से विकसित करने में सक्षम है?वीएस 2005 (8) आईडीई

हमारी परियोजना क्रॉस-प्लेटफॉर्म है, और मुझे अक्सर colleague से परेशानी होती है क्योंकि मैं ऐसे कोड में जांच कर रहा हूं जो मानक अनुरूप नहीं है (इसे वीएस कंपाइलर के लिए जिम्मेदार ठहराया जा सकता है!)।

मैं अभी भी एमएस संकलक का उपयोग कर संकलन करने में सक्षम होना चाहते हैं, तो मैं डिबगिंग जारी रख सकते हैं, आदि, लेकिन मैं, जीसीसी का उपयोग कर संकलित करने के लिए स्विच करने में सक्षम होना चाहते हैं तो बस इतना है कि मैं हो सकता है यकीन है कि मैं अन्य प्लेटफार्मों पर निर्माण तोड़ नहीं रहा हूँ।

क्या यह संभव है?

उत्तर

5

जो मैं सुझाव देने वाला हूं उसे अभी भी मेकफ़ाइल की आवश्यकता होगी, इसलिए मैं आंशिक रूप से पहले के उत्तर से सलाह दोहरा रहा हूं। या, जैसा कि पहले भी उल्लेख किया गया था, हो सकता है कि आपके पास पहले से मेकफ़ाइल हो, जिस स्थिति में आप वर्णन करने वाले हैं, उसे पूरा करने के लिए आपके पास भी कम कदम होंगे।

एक बार जब आप अपने कोड पर मेक या जी ++ का आह्वान करने के लिए अपने विशिष्ट विंडोज कमांड लाइन कमांड को जानते हैं, तो आप अपने विजुअल स्टूडियो प्रोजेक्ट में "प्री-बिल्ड इवेंट" बनाते हैं। ("परियोजना गुण >> कॉन्फ़िगरेशन गुण >> घटनाएं बनाएं >> प्री-बिल्ड इवेंट")।

प्री-बिल्ड इवेंट आपकी मशीन पर बैट फ़ाइल स्क्रिप्ट या किसी अन्य स्क्रिप्ट को कॉल कर सकता है, और वह स्क्रिप्ट एक त्रुटि-कोड वापस करने में सक्षम होगी। अनिवार्य रूप से, "स्क्रिप्ट ओके," या "स्क्रिप्ट FAILED" आपकी स्क्रिप्ट के दृश्य दृश्य स्टूडियो पर संचार की मात्रा की सीमा है।

स्क्रिप्ट स्वचालित रूप से सभी दृश्य स्टूडियो पर्यावरण चर (जैसे $ (इनपुटडियर), $ (ProjectDir), $ (SolutionName), आदि को स्वचालित रूप से नहीं देखता है, हालांकि आप कॉल करने के तरीके निर्दिष्ट करते समय उन चर का उपयोग कर सकते हैं लिपी। दूसरे शब्दों में, आप उन मानों को स्क्रिप्ट के रूप में स्क्रिप्ट के रूप में पास कर सकते हैं।

इसे सेट अप करें ताकि जब भी आप विजुअल स्टूडियो में निर्माण करते हैं, तो पूर्व-निर्माण ईवेंट आपके कोड पर बनाने/g ++ चलाने की कोशिश करेगा। यदि आपकी स्क्रिप्ट (जिसे कॉल/g ++ कहते हैं) किसी भी समस्या का पता लगाता है, तो स्क्रिप्ट एक त्रुटि देता है और बिल्ड को तब और वहां रोक दिया जा सकता है। स्क्रिप्ट stdout या stderr पर प्रिंट कर सकती है और यह दृश्य विजुअल स्टूडियो बिल्ड आउटपुट विंडो में दिखाई दे सकता है (खिड़की जो आम तौर पर सामान दिखाती है "========== बिल्ड: 3 सफल, 0 विफल")।

आप स्क्रिप्ट प्रिंट हो सकता है:,

"बिल्ड विफल, गैर पोर्टेबल कोड का पता चला बनाना/जी ++ लौटे निम्नलिखित: ........."

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

0

मुझे जीसीसी के साथ संकलन के लिए अलग मेकफ़ाइल बनाए रखना था। सीखने के साथ जुड़ी एक अग्रिम लागत है, लेकिन आपको अपने कोड के अंतरंग ज्ञान और वीएस सी ++ और जीसीसी के बीच अंतर से लाभ होगा। जब मैंने ऐसा किया, तो मैं वीसी 6 का उपयोग कर रहा था, इसलिए वीएस 2005 के साथ अब बेहतर तरीका हो सकता है।

0

सिगविन आज़माएं, जब तक आप अपने सभी मेकफ़ाइल सही तरीके से सेट अप करते हैं, तो आप हमेशा वीएस पर संकलन करने की कोशिश कर सकते हैं और जीसीसी

1

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

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

वीएस कंपाइलर का उपयोग करने वाली एक मेक सिस्टम बनाना संभव है लेकिन दर्दनाक (वहां किया गया है)। और एक अलग सवाल है। ;)

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

0

यह निर्भर करता है कि जटिल अपनी परियोजना फ़ाइलें हैं:

आप निश्चित रूप से cygwin की तरह एक जीसीसी वातावरण की जरूरत है।

  • छोटी परियोजनाओं या एकल फ़ाइल के लिए

    संकलन आप बड़ी परियोजनाओं के लिए एक कस्टम निर्माण उपकरण (नियम-फ़ाइल)

  • उपयोग कर सकते हैं/मैं कर रहा हूँ स्वचालित रूप जेनरेट एक autotools समाधान vcproj से कॉन्फ़िगर/makefile/sln-file और आईडीई के अंदर इसे संकलित करें। स्रोत फ़ाइलों/चेतावनियों की लाइनें और जीसीसी की त्रुटियों को उनके आईडीई समकक्ष (आउटपुट विंडो में क्लिक करने योग्य) में अनुवादित किया जाता है।

1

यह करने के लिए निश्चित रूप से तरीके हैं - इस प्रकार हम पीएस 3 के लिए सोनी के टूलचेन (जो जीसीसी पर आधारित है) के साथ विकसित होते हैं। मुझे नहीं पता कि यह कैसे काम करता है, लेकिन यह बेहद सहजता से वीएस में एकीकृत करता है।

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

यह सामान WRS/VxWorks जीसीसी उपकरण के संस्करण साथ वी.एस. उपयोग के बारे में a related discussion में मदद कर सकते हैं:

विशेष रूप से ध्यान दें program linked there जो त्रुटि उत्पादन बदल देता है।

0

संभवतः आप पहले से ही अपनी परियोजना बनाने के लिए मेकफ़ाइल का उपयोग कर रहे हैं, क्योंकि यह क्रॉस-प्लेटफॉर्म है। बस अपनी वीएस प्रोजेक्ट को विभिन्न प्रोजेक्ट कॉन्फ़िगरेशन के साथ मेकफ़ाइल प्रोजेक्ट बनाएं जो विभिन्न पैरामीटर का उपयोग करके मेकफ़ाइल को लात मारने के लिए यह इंगित करता है कि बिल्ड एमएसवीसी या जीसीसी के लिए है या नहीं।

यदि आपका एमएसवीसी मेकफ़ाइल बिल्ड डीबग फाइल (पीडीबी) बनाने में सक्षम है - जो इसे करने में सक्षम होना चाहिए, तो वीएस डीबगर भी निर्बाध रूप से काम करेगा।

फिर विजुअल स्टूडियो के अंदर जीसीसी का उपयोग करना टूलबार पर 'जीसीसी' कॉन्फ़िगरेशन ड्रॉपडाउन चुनने जितना सरल है।

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