PAH MQTT संकलन के दौरान अपरिभाषित संदर्भ त्रुटि फेंकता है


1

मुझे C में PAH MQTT क्लाइंट का उपयोग करने में समस्या है।

मैंने उनके सिस्टम पेज के लिए अपने सिस्टम (विंडोज 10 64) के लिए पूर्व निर्मित बायनेरी डाउनलोड किया । मैंने ज़िप फ़ाइल को दस्तावेज़ फ़ोल्डर में एक फ़ोल्डर में अनपैक किया, जहां मैंने PAH उत्पाद पृष्ठ के निचले भाग में उदाहरण के साथ एक .c फ़ाइल बनाई । मेरा संपादक परमाणु है और मेरा संकलक gcc है।

जब मैंने इसे एटम में संकलित करने की कोशिश की, तो मुझे यह त्रुटि मिली:

undefined reference to MQTTClient_create' 

इसलिए मैंने खोज की और बहुत सारे विषय पाए, लेकिन मैं अभी भी यह पता नहीं लगा सका कि इस मुद्दे को कैसे हल किया जाए। से इस stackoverflow विषय मैं इकट्ठा कि यह एक लिंकर समस्या है और मैं संकलन के दौरान फ़ाइलों को लिंक करना होगा कि, तो यहाँ मैं क्या करने की कोशिश की है:

gcc MQTT.c -L "C:\Users\Pete\Documents\MQTT on C\Examples\Paho\lib" -l paho-mqtt3c

जो अभी भी मुझे वही undefined referenceत्रुटि देता है । जब मैं उसी नाम के dll से लिंक करने की कोशिश करता हूं, तो कंपाइलर को फ़ाइल नहीं मिलती है।

कृपया कोई मुझे सही दिशा बता सकता हैं?
किसी भी मदद की सराहना की है!

जवाबों:


0

मुझे यह जानने में दिलचस्पी होगी कि क्या आपने विंडोज में PAH MQTT dll पंजीकृत किया है?

आपके पास paho-mqtt3c.dllडाउनलोड के हिस्से के रूप में होना चाहिए ।

मुझे नहीं पता कि यह आपके लिए काम करेगा, लेकिन मेरे पास एक ही मुद्दा है (अपरिभाषित संदर्भ MQTTClient_create) ...

  • dllफ़ाइल को कॉपी करेंc:/windows/system32
  • CMD प्रॉम्प्ट को प्रशासक के रूप में चलाएं और टाइप करें:

    regsvr32 i/ paho-mqtt3c.dll

एक कोशिश के काबिल है।


मैंने विंडोज में डीएलएल पंजीकृत नहीं किया था। जब मैंने आपके लिए अपना कमांड चलाया तो paho-mqtt3c.dllमुझे मिला: "मॉड्यूल" paho-mqtt3c.dll "लोड किया गया था, लेकिन प्रवेश-बिंदु DllRegisterServer नहीं मिला।" यह काम करने के लिए लगता है ... cddll, लेकिन संकलक मुझे पहले जैसी त्रुटि देता है।
पीट

0

समस्या यह थी कि मैं 64-बिट लाइब्रेरी के लिए 32-बिट gcc संकलक के साथ कार्यक्रम को संकलित कर रहा था। MinGW64 को स्थापित करने और उपयोग करने का काम किया।


0

ओएस एक्स में मेरे पास एक ही मुद्दा था। यह है कि मैंने इसे कैसे हल किया

  1. मैंने Linux / EC2 उदाहरण में paho-mqtt लाइब्रेरी संकलित की।

  2. सभी निर्भरताएँ स्थापित:

सुडो यम इंस्टाल बिल्ड-एसेंशियल-जीसी सीक सीएमके सीमेक-गुई सीमेके-शाप-गुई

सुडो यम सेमीक स्थापित करें

sudo yum install doxygen graphviz

  1. cmake -DPAHO_WITH_SSL = सही -DPAHO_BUILD_DOCUMENTATION = FALSE -DPAHO_BUILD_STATIC = सही -DPAHO_BUILD_SHARED = FALSE -DPAHO_MQTT_C_PATH = .. / paho.mqtt.c / -DPAHO_MQTT_C_LIB = .. / paho.mqtt.c / src / libpaho.mqtt3as-static.a

  2. बनाना

  3. html बनाओ
  4. स्थापित करें
  5. LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: /home/ec2-user/paho.mqtt.c/src
  6. निर्यात LD_LIBRARY_PATH = $ LD_LIBRARY_PATH
  7. सुडो ldconfig
  8. gcc test1.c -o test1 -lpaho-mqtt3c

सफलतापूर्वक संकलित ।।

  1. ./test1

यह समाधान OS X के लिए भी काम करता है। स्टेप 2 को काढ़ा डिटेल ऑक्सीजन ओपनसेल-डेवेल के साथ बदलें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.