2013-05-05 7 views
29

मैं खुद को एक छोटा सा जैबर क्लाइंट लिख रहा हूं। मैंने Libpurple.com से कोड का उपयोग किया है और लिनक्स (मिंट) पर सब कुछ ठीक काम करता है। बिना किसी त्रुटि के पुस्तकालयों को प्रोग्राम संकलित करता है और संदेश प्राप्त करता है।लिबरपल कनेक्ट नहीं हो सकता है - purple_presence_is_online असफल

लेकिन जब मैं विंडोज 7 पर एक ही कोड का उपयोग करता हूं, तो सभी निरंतर पुस्तकालयों को लिंक करें और सिग्विन स्थापित और पैथ सेट के साथ, प्रोग्राम कोई त्रुटि के साथ संकलित नहीं होता है, लेकिन फिर NetBeans (आईडीई मैं विंडोज और लिनक्स में उपयोग करता हूं) कहता है 'रन फुलड'

जब मैं खिड़कियों कमांड लाइन से कार्यक्रम चलाने के यह कहते हैं:

libpurple initialized. Running version 2.10.7. 
** <myclient.exe:6500>: CRITICAL **: purple_presence_is_online: assertion 'presence != NULL' failed 

और फिर इसे फ्रीज। मैंने पहले से ही libpurple 2.10.3 (मेरे पास लिनक्स में संस्करण) पर जाने की कोशिश की है, लेकिन फिर भी वही है। फ़ायरवॉल बंद करना या तो मदद नहीं करता था।

+3

आप लॉगिंग सुविधा (https://developer.pidgin.im/wiki/CHowTo/DebugAPIHowTo) सक्षम और क्यों purple_presence_is_online एक शून्य ptr –

+1

आप अधिक जानकारी के पोस्ट करने के लिए है करने के लिए जा रहे हैं मिल गया पता लगाने के लिए प्रयास करना चाहिए । एक अलग वातावरण दौड़ की स्थिति या अन्य समस्याओं का परिचय दे सकता है। स्पष्ट रूप से libpurple उस राज्य में नहीं है जिसकी आप उम्मीद कर रहे हैं और आपको इसकी रक्षा करने के लिए गार्डिंग की आवश्यकता की आवश्यकता होगी। –

+0

@ औद्योगिक-एंटीड्रिप्रेसेंट मुझे यह कैसे करना चाहिए? मैंने अपने मुख्य समारोह में 'purple_debug_set_enabled (TRUE) 'जोड़ा लेकिन आउटपुट पर एक डीबग जानकारी नहीं। आपके द्वारा पोस्ट किया गया लिंक दिखाता है कि मैं अपने स्वयं के डीबग संदेशों को कैसे लॉग कर सकता हूं ... लेकिन यह मेरी ज़रूरत नहीं है, है ना? – user1023979

उत्तर

0

libPurple के बजाय GLOOX (http://camaya.net/gloox) जैसी साधारण XMPP क्लाइंट लाइब्रेरी का उपयोग क्यों न करें। GLOOX एक क्रॉस प्लेटफ़ॉर्म लाइब्रेरी है जिसे संकलित करने के लिए विंडोज़ पर CYGWIN की आवश्यकता नहीं है। और यह पूर्ण, सभी सारणी एक्सएमपीपी अनुमानों के लिए कार्यान्वयन प्रदान करता है।

हालांकि, यदि आप याहू, फेसबुक जैसे अन्य गैर-एक्सएमपीपी नेटवर्क से कनेक्ट करना चाहते हैं, तो libPurple निश्चित रूप से उत्तर होगा।

0

चूंकि आपकी समस्या को पुन: पेश करना मुश्किल है, तो मैं सुझाव दूंगा कि आप "उपस्थिति" सूचक से कहां से आते हैं, और कौन सा कोड ब्लॉक इसे पूर्ण करता है, यह जांचने के लिए आप डीबगर का उपयोग करते हैं। फिर आप पूछ सकते हैं "क्यों purple_stupid_function() एक नल पॉइंटर लौटाता है" जो उत्तर देने में बहुत आसान है।

0

पिछली बार जब मैंने लिबपर्पल (साल पहले) देखा तो मैं केवल मिनीगू के साथ काम कर सकता था, सिगविन नहीं।

1

कुछ बातें ध्यान रखें:

  1. प्रत्येक ओएस अपने स्वयं के मुद्दों है जब एक प्रोग्राम तैनात है। तो, इस तथ्य को अनदेखा करें कि आपका ग्राहक लिनक्स में काम कर रहा है। इस तथ्य से शुरू करें कि आपका प्रोग्राम/libpurple विंडोज़ में काम नहीं करता है।

  2. यह देखने का प्रयास करें कि कोई क्लाइंट (पिजिन आदि) है जो एक ही कोड पथ (फ़ंक्शन जहां दावा विफल रहता है) का उपयोग करता है, और सफल होता है। यह मूलभूतता जांचने के लिए है कि libpurple कोड वास्तव में उस वातावरण में उपयोग करने योग्य है (साइगविन)

  3. यदि आपके ग्राहक और सर्वर के बीच कोई ट्रैफ़िक है, तो वायरसहार्क यातायात डंप प्राप्त करने का प्रयास करें, और काम करने के बीच इसकी तुलना करें (लिनक्स) और असफल (सिगविन) पर्यावरण।

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