2012-03-30 17 views
5

के रूप में मिनजीडब्ल्यू दृश्य सी ++ कंपाइलर के विकल्प के रूप में, 64-बिट के लिए मिनजीडब्ल्यू कंपाइलर की विश्वसनीयता के बारे में चिंतित हूं।विश्वसनीय 64-बिट जीसीसी कंपाइलर

उदाहरण के लिए

, सी ++ कोड बनाता है और जीसीसी 4.6.2 का उपयोग कर लिनक्स के तहत पूरी तरह से चलाता है, इसी MinGW इसी तरह विश्वसनीय निष्पादनयोग्य/64-बिट Windows के तहत पुस्तकालयों का उत्पादन करेगा यह सोचते हैं?

क्या साइगविन रिलायबिलिटी के मामले में बेहतर विकल्प है? न तो दृश्य सी ++ संकलक के लिए है?

+0

जब तक मानक और अन्य पुस्तकालयों के विंडोज विशिष्ट भाग में कीड़े हैं, मैं कोड ("बुला सम्मेलनों" को छोड़ कर) समान होना उम्मीद थी। –

उत्तर

14

सबसे पहले, कुछ गलतफहमी:

  1. MinGW (.org) अपने क्रम के एक 64-बिट संस्करण प्रदान नहीं करता है। MinGW-w64 उनके 32-बिट सीआरटी के अलावा करता है। वे एआरएम समर्थन पर भी काम कर रहे हैं। और विभिन्न अतिरिक्त एपीआई (Win32 और अन्य) का समर्थन करें।

  2. सिगविन < -> मिनीजीडब्ल्यू-डब्ल्यू 64: सिग्विन एमएस सीआरटी (msvcrt.dll) का उपयोग नहीं करता है। इसके बजाय यह आपके सिग्विन ऐप और सिस्टम के ओएस पुस्तकालयों (kernel32.dll, ntdll.dll, आदि), अर्थात् cygwin1.dll के बीच एक पॉज़िक्स संगतता परत डालें।

सवाल तो करने के लिए पर ...

मैं MinGW-W64 compilers बहुत अच्छा जीसीसी 4.6 और इसके बाद के संस्करण पाया है, और (वास्तव में, 4.5.1 और ऊपर) अच्छा उत्पादन की बहुत सक्षम हैं विंडोज के लिए 64-बिट कोड। कृपया याद रखें कि MinGW अनिवार्य रूप से एक ही सी एपीआई msvcrt.dll के रूप में प्रदान करता है, इसलिए प्रलेखन के लिए msdn.com पर जाएं (और दस्तावेज़ के "MSVC++ 2003" संस्करण को देखना सुनिश्चित करें, कुछ फ़ंक्शन नए रनटाइम से भिन्न होते हैं), नहीं ऐसा लगता है कि क्योंकि यह जीसीसी है, glibc दस्तावेज़ अचानक विंडोज पर लागू होता है। आपका कोड क्रॉस-प्लेटफार्म होना होगा। यह भी ध्यान दें कि x64 विंडोज पर sizeof(long)!=sizeof(T*)। X64 विंडोज़ के लिए * nix या x86 विंडोज कोड पोर्ट करते समय आमतौर पर एक त्रुटि आई।

+1

मिनीजीडब्ल्यू डब्ल्यू/जीसीसी 4.5.1+ – Nick

+0

के साथ स्पष्टीकरण और अपने अनुभव को साझा करने के लिए धन्यवाद सुधार: सिग्विन एमएसवीआरआरटी ​​का उपयोग नहीं करता है, यह इसके स्थान पर अपना सी रनटाइम प्रदान करता है। अपडेट करें: सिगविन में अब 64-बिट संस्करण है। – Yaakov

+0

@Yakakov आप सही हैं। अद्यतन पोस्ट – rubenvb

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