के तहत एक साधारण पथ्रेड कोड को संकलित करने में लिंकर त्रुटियां मैं एक सी ++ स्रोत फ़ाइल test.cpp संकलित करने की कोशिश कर रहा हूं, जिसमें एक बहुत ही सरल कोड है जो pthread_create() को प्रदर्शित करता है; pthread_cond_signal/pthread_cond_wait() कार्यक्षमता।मिंगड
मैंने विंडोज एक्सपी पर मिंगव/Ansys स्थापित किया है जहां मैं काम कर रहा हूं। Mingw प्रॉम्प्ट में मुझे क्या करना:
g++ -IC:/MinGW/include/ -lpthread test.cpp
//-IC:/MinGW/include to get pthread.h
//-LC:/MinGW/bin to get pthreadGC2.dll
सीपीपी के रूप में pthread.h में शामिल हैं:
#include <pthread.h>
लेकिन यह मुझे सभी pthread पुस्तकालय कार्यों के लिए कई लिंकर अपरिभाषित संदर्भ त्रुटियों दे दी है।
मैं यहां क्या गलत कर रहा हूं। क्या विंडोज़ पर मिंगडब्ल्यू पर्यावरण पर एक पर्थ्रेड कोड बनाना संभव है या नहीं?
इस त्रुटियों को कैसे हल करें?
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x23): undefined reference to `_imp__pthread_mutex_lock'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x67): undefined reference to `_imp__pthread_cond_signal'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x75): undefined reference to `_imp__pthread_mutex_unlock'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x98): undefined reference to `_imp__pthread_exit'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0xbc): undefined reference to `_imp__pthread_mutex_lock'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0xe8): undefined reference to `_imp__pthread_cond_wait'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x10f): undefined reference to `_imp__pthread_mutex_unlock'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x135): undefined reference to `_imp__pthread_exit'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x153): undefined reference to `_imp__pthread_attr_init'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x169): undefined reference to `_imp__pthread_mutex_init'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x17f): undefined reference to `_imp__pthread_attr_setdetachstate'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x195): undefined reference to `_imp__pthread_cond_init'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x1bc): undefined reference to `_imp__pthread_create'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x1e3): undefined reference to `_imp__pthread_create'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x201): undefined reference to `_imp__pthread_join'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x21f): undefined reference to `_imp__pthread_join'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x239): undefined reference to `_imp__pthread_mutex_destroy'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x247): undefined reference to `_imp__pthread_cond_destroy'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x255): undefined reference to `_imp__pthread_attr_destroy'
C:\DOCUME~1\ADESHP~1\LOCALS~1\Temp\ccUQhu7D.o:pthread_cond.c:(.text+0x263): undefined reference to `_imp__pthread_exit'
collect2: ld returned 1 exit status
मैंने उपयोग किए गए मिनजीडब्ल्यू वितरण को एक पर्थ्रेड लाइब्रेरी के साथ नहीं आया है। क्या आपके पास वास्तव में एक है (एक http://sourceware.org/pthreads-win32/ से उपलब्ध है)? –
@ माइकल बुर: मैंने स्पष्ट रूप से मिंगडब्ल्यू पर पथ्रेड स्थापित नहीं किया था। लेकिन चूंकि मैंने trhe mingw बाइनरी फ़ोल्डर में pthreadGC2.dll देखा, इसलिए मैंने इसे समर्थित pthread कॉल मान लिया। नहीं? – goldenmean
pthread-Win32 के लिंक के लिए धन्यवाद। बस एक क्वेरी फिर क्या है pthread.h हेडर और pthreadgc2.dll MinGW में हैं? – goldenmean