2010-08-05 27 views
15

में नहीं मिला है मैं विंडोज पर मिनीक्वाइड के माध्यम से ग्रहण आईडीई (यदि यह मायने रखता है) के साथ जीसीसी 4.5.0 का उपयोग कर रहा हूं।जीसीसी std :: थ्रेड नेमस्पेस std

मैं -std=c++0x ध्वज का उपयोग कर रहा हूं।

मुझे लगता है कि _GLIBCXX_HAS_GTHREADS अभी भी परिभाषित नहीं किया गया है, इसलिए thread मेरे लिए अभी भी नामस्थान std का सदस्य नहीं है। - या शायद यह कुछ और है।

जीसीसी के साथ सी ++ 11 थ्रेडिंग समर्थन प्राप्त करने के लिए कोई क्या करता है?

पीएस यह -pthread ध्वज को नहीं पहचानता है। मैंने इस साइट पर कहीं और एक प्रश्न में पढ़ा है कि यह काम करता है।

संपादित करें: बेवकूफ मुझे: pthread एक पुस्तकालय है, विकल्प नहीं। यह स्थापित है, जीसीसी हेडर पा सकता है, लेकिन अभी भी कोई सिगार नहीं है।

+0

आप ' 'सहित हैं, है ना? –

+0

हां, मुझे यह मैक्रो कैसे मिला? संपादित करें: फिर से जांच की गई। मैं निश्चित रूप से इसे शामिल कर रहा हूँ। यह अभी भी शिकायत करता है कि "धागा" std का सदस्य नहीं है। – defube

+0

देखें [उत्तर] (http://stackoverflow.com/a/5931181/723845) – Loom

उत्तर

10

लिनक्स पर ठीक काम करता है (g++ -std=c++0x -lpthread बिना अतिरिक्त परिभाषा के)।

हालांकि, this thread on Cygwin mailing list पता चलता है कि, कम से कम 4.4 के रूप में, _GLIBCXX_HAS_GTHREADS एक autoconf परीक्षण द्वारा अक्षम किया गया था जब libstdC++ निर्माण क्योंकि cygwin के pthread कार्यान्वयन pthread_mutex_timedlock याद आ रही है। शायद MinGW एक ही समस्या है।

इसके अलावा, this thread on comp.lang.c++.moderated वही बात कहता है। लाइब्रेरी द्वारा समर्थित नहीं है।

3

जीसीसी के साथ सी ++ 0x थ्रेडिंग समर्थन प्राप्त करने के लिए कोई क्या करता है?

बूस्ट का उपयोग करें? गंभीरता से http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html दावे धागे मुख्य लाइन के सिर में भी पूर्ण नहीं होते हैं, इसलिए यह किसी भी मौजूदा रिलीज में नहीं होने वाला है।

+0

हां, मुझे बढ़ावा देने के बारे में पता है और मुझे इसका उपयोग करने में कोई फर्क नहीं पड़ता। मुझे यह भी पता है कि सी ++ 0x के लिए जीसीसी समर्थन वर्तमान में प्रयोगात्मक है। मैं सिर्फ उत्सुक था कि यह मेरे साथ क्यों काम नहीं करता जब यह स्पष्ट रूप से पुराने संस्करणों (जो मैंने कोशिश की है, और अभी भी एक ही संदेश प्राप्त करने के अंत में) के साथ काम किया है। – defube

2

मूल विंडोज़ जीसीसी का निर्माण करता है नई सी ++ 0x/सी ++ 11 थ्रेड लाइब्रेरी का समर्थन नहीं करता है।

(वाणिज्यिक) Just::Thread लाइब्रेरी विंडोज़ के साथ जीसीसी 4.5.2 के टीडीएम बंदरगाह के साथ-साथ एमएसवीसी के समर्थन को जोड़ता है।

+0

आप गलत हैं;) – niXman

2

वहां पहले से ही एक हल्के हेडर केवल पुस्तकालय है कि शुद्ध Win32 एपीआई में std :: धागा और सिंक पुरातन लागू करता है: https://github.com/meganz/mingw-std-threads

यह किसी भी संस्करण के साथ काम करना चाहिए MinGW का उचित सी ++ 11 समर्थन है।

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