2010-01-09 21 views
37

मैं अपने सी ++ एप्लिकेशन को सॉकेट के साथ संकलित करने के लिए विंडोज पर मिनीजीडब्लू कंपाइलर का उपयोग कर रहा हूं। की तरह दिखता है जोड़ने के लिए मेरे आदेश:मिनजीडब्लू लिंकर त्रुटि: winsock

g++.exe -Wall -Wno-long-long -pedantic -lwsock32 -o dist/Windows/piskvorky { there are a lot of object files } 

और मैं भी

g++.exe -Wall -Wno-long-long -pedantic -lws2_32 -o dist/Windows/piskvorky { there are a lot of object files } 

की कोशिश की है, लेकिन दोनों के मामले में मैं इस त्रुटि मिलती है:

build/Windows/MinGW-Windows/src/utils/tcpunit.o:tcpunit.cpp:(.text+0x33): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpunit.o:tcpunit.cpp:(.text+0xd0): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpunit.o:tcpunit.cpp:(.text+0x1ee): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x184): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x1a5): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x1cb): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x1d3): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x6fe): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x724): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x7f0): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x83c): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x86f): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x8b5): undefined reference to `[email protected]' 
build/Windows/MinGW-Windows/src/utils/tcpdevice.o:tcpdevice.cpp:(.text+0x9c6): undefined reference to `[email protected]' 

आप किसी भी विचार है, जहां समस्या हो सकता है, कृपया?

+0

piškvorky se socketama? : डी –

+0

@ मैटस हाँ, गेम में नेटवर्क मोड – Gaim

उत्तर

98

ऑब्जेक्ट फ़ाइलों की सूची के बाद -lws2_32 रखो - जीसीसी कमांड लाइन पर दिखाई देने वाले क्रम में पुस्तकालयों और ऑब्जेक्ट फ़ाइलों को खोजता है।

बस अन्य दर्शकों मदद करने के लिए वहाँ बाहर:

gcc hello.c -o hello.o -lws2_32 
+4

आपकी सलाह के लिए बहुत बहुत धन्यवाद – Gaim

+0

काम करता है .. धन्यवाद दोस्त –

-2

नमस्ते मैं सिर्फ ऊपर समस्या माध्यम से चला गया ....

तो यहाँ कुछ टिप्पणियों पहले बंद कर रहे हैं ....

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

सिगविन प्रीकंपिल्ड बूस्ट लाइब्रेरीज़ के साथ आता है, लेकिन कौन जानता है कि वे कौन से संस्करण हैं। मुझे यकीन है कि जांचना संभव है, लेकिन सही करने का समय कौन है? मैं साइगविन बूस्ट लाइब्रेरीज़, या मिंगव बूस्ट लाइब्रेरीज़ के खिलाफ लिंक नहीं करता, मैंने खिड़कियों (सिगविन) पर जीसीसी का उपयोग करके स्क्रैच से बढ़ावा दिया। संकलन ठीक था।

इस लेखन बूस्ट के समय संस्करण 1.47.0 पर मैं बेकार हूं।

पहले से ही यह तथ्य कि साइगविन संस्करण (x?) का उपयोग करता है और बढ़ावा 1.47.0 एक बड़ा मुद्दा हो सकता है। आपको बताएं कि आप बढ़ावा देने के तरीके में क्या उपयोग कर रहे हैं।

मैं बूस्ट 1.42 पर विकसित कोड का उपयोग कर रहा था, और लिंकर त्रुटियों से संबंधित था। कोड संकलित, हेडर पाए गए, आदि। आदि ... लेकिन फिर मुझे डब्लूएसए इत्यादि के लिए अनिर्धारित संदर्भ मिला ... आदि ... इसे खोलता है, सॉकेट बंद करें, आदि ....

तो, नेटवर्क सॉकेट करने के लिए, गारंटीकृत बढ़ावा देने के लिए, एक प्लेटफ़ॉर्म लाइब्रेरी की आवश्यकता होती है, जिसमें विंडोज़ के लिए ws2_32 के रूप में पाया गया था, और निश्चित रूप से लिनक्स के लिए सॉकेट।

तो यदि आप बूस्ट का उपयोग कर सही तरीके से उपयोग कर रहे हैं, और सही बूस्ट सिस्टम लाइब्रेरी समेत, तो आपको कुछ संसाधनों (इस मामले में नेटवर्किंग) तक पहुंचने के लिए ओएस विशिष्ट लाइब्रेरी की भी आवश्यकता हो सकती है।

उसके बाद लिंकर त्रुटियां गायब हो गईं। दिग्गजों को बढ़ावा देने के लिए शायद यह स्पष्ट है कि यहां क्या हो रहा है, लेकिन मैं Google के माध्यम से स्पष्ट उत्तर नहीं ढूंढ पाया।

5

ग्रहण पर मिंगव के साथ: मेनू - प्रोजेक्ट - गुण - सी/सी ++ बिल्ड - सेटिंग्स: "टूल सेटिंग्स" पंजीकृत करें - मिनीजीडब्ल्यू सी लिंकर - विविध: निचला भाग "अन्य ऑब्जेक्ट्स" जोड़ें: "डी: \ प्रोग्राममियरंग उदाहरण के लिए \ mingw \ lib \ libwsock32.a "। Libwsock32.a के लिए कोई अन्य प्रविष्टि आवश्यक नहीं है, विशेष रूप से लाइब्रेरी-प्रविष्टियों में नहीं। इस लिब से संबंधित कोई झंडे भी नहीं।

+0

कृपया सभी उत्तरों को अंग्रेजी में पोस्ट करें। –

+1

उत्तर अंग्रेजी में है ... पथ नहीं है, लेकिन यह कोई समस्या नहीं होनी चाहिए। – jazzpi

+0

यह उत्तर काम करता है। –

1

में:

मेनू - परियोजना - गुण - C/C++ बिल्ड - सेटिंग्स: रजिस्टर "उपकरण सेटिंग" - MinGW सी ++ लिंकर - विविध: निचले भाग "अन्य वस्तुओं"

जोड़ें: libwsock32.aबिन फ़ोल्डर से MinGW

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