2010-04-18 14 views
12

हालांकि यह कहा गया है कि जी ++ में सी ++ 0x नई सुविधाओं के लिए समर्थन प्रायोगिक मोड में हैं, कई जीसीसी डेवलपर ने दावा किया है कि आप अपने कोड में अधिकांश नई सुविधाओं का उपयोग कर सकते हैं और प्राप्त कर सकते हैं काम करने के लिए कार्यक्रम।जी ++ और सी ++ 0 एक्स विनिर्देश समर्थन

लेकिन जब मैं इस सरल कार्यक्रम को संकलित करने का प्रयास करता हूं तो इसका परिणाम विभाजन गलती होती है। क्यूं कर?

#include <thread> 
#include <iostream> 

void my_thread_func() 
{ 
    std::cout<<"hello"<<std::endl; 
} 

int main() 
{ 
    std::thread t(my_thread_func); 
    t.join(); 
} 

जी ++ -std = C++ 0x -Wall -ओ चलाने main.cc

+1

जीसीसी का आप किस संस्करण का उपयोग कर रहे हैं? –

+2

जैसे कोई सी ++ में विसर्जित नहीं होता है, वैसे ही थ्रेड ऑब्जेक्ट को इसे बनाने के द्वारा शुरू किया गया है आश्चर्यजनक है :-) – xyz

+0

जीसीसी संस्करण 4.4.3 – sepisoad

उत्तर

12

मैं pthread पुस्तकालय के साथ निष्पादन योग्य जुड़ा हुआ है और यह काम किया! मुझे कोई लापता साझा लाइब्रेरी निर्भरता (ldd) नहीं दिखाई दे रही है, लेकिन ऐसा लगता है कि लिनक्स पर std C++ लाइब्रेरी कार्यान्वयन आंतरिक रूप से pthread का उपयोग करता है।

g++ thread.cpp -o thread -Wall -std=c++0x -lpthread 
+0

हे भगवान, मैं कितना मूर्ख हूँ। धन्यवाद सुमन, यह -प्थ्रेड स्विच – sepisoad

+0

के साथ अच्छी तरह से काम करता है मैंने सोचा कि जी ++ में सी ++ 0x थ्रेड का एक अलग कार्यान्वयन होगा, लेकिन जैसा कि आपने कहा है कि यह वर्तमान में पॉज़िक्स थ्रेड लाइब्रेरी का उपयोग करता है। – sepisoad

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