J'ai un problème avec le client Paho MQTT en C.
J'ai téléchargé les binaires pré-construits pour mon système (Windows 10 64) à partir de leur page des projets . J'ai décompressé le fichier zip dans un dossier du dossier documents, où j'ai également créé un fichier .c avec l'exemple au bas du Paho page produit . Mon éditeur est atom et mon compilateur est gcc.
Quand j'ai essayé de le compiler dans Atom, j'ai eu cette erreur:
gcc MQTT.c -L "C:\Users\Pete\Documents\MQTT on C\Examples\Paho\lib" -l paho-mqtt3c
J'ai donc cherché et j'ai trouvé beaucoup de sujets, mais je n'arrivais toujours pas à comprendre comment résoudre ce problème. À partir de ce sujet de stackoverflow , je suppose que c'est un problème d'éditeur de liens et que je besoin de lier les fichiers pendant la compilation, alors voici ce que j'ai essayé:
undefined reference to MQTTClient_create'
Ce qui me donne toujours la même erreur de référence non définie
. Lorsque j'essaye de créer un lien vers la DLL du même nom, le compilateur ne trouve pas le fichier.
Quelqu'un peut-il m'indiquer la bonne direction, s'il vous plaît?
Toute aide est appréciée!
3 Réponses :
Je serais intéressé de savoir si vous avez enregistré la dll Paho MQTT dans Windows?
Vous devriez avoir paho-mqtt3c.dll
dans le cadre du téléchargement.
Je ne sais pas si cela fonctionnera pour vous, mais j'ai le même problème (référence non définie à MQTTClient_create
) ...
dll
dans c:/windows/system32
Exécutez l'invite CMD en tant qu'administrateur et tapez:
regsvr32 i / paho-mqtt3c.dll
Ça vaut le coup d'essayer.
Je n'avais pas enregistré la DLL dans Windows. Quand j'ai exécuté votre commande pour paho-mqtt3c.dll
j'ai obtenu: "Le module" paho-mqtt3c.dll "a été chargé mais le point d'entrée DllRegisterServer n'a pas été trouvé." Cela semble fonctionner pour le ... cs.dll, mais le compilateur me donne la même erreur qu'avant.
Le problème était que je compilais le programme avec le compilateur gcc 32 bits pour la bibliothèque 64 bits. L'installation et l'utilisation de MinGW64 ont fonctionné.
J'ai eu le même problème sous OS X. Voici comment je l'ai résolu
J'ai compilé la bibliothèque paho-mqtt dans une instance Linux / EC2.
A installé toutes les dépendances:
sudo yum install install build-essential gcc make cmake cmake-gui cmake-curses-gui
sudo yum installer cmake
sudo yum installer doxygen graphviz
cmake -DPAHO_WITH_SSL = TRUE -DPAHO_BUILD_DOCUMENTATION = FALSE -DPAHO_BUILD_STATIC = TRUE -DPAHO_BUILD_SHARED = FALSE -DPAHO_MQTT_C_PATHrc = .. / paho.mahott.c_PATHrc.cq / paho.mqp. .mqtt3as-static.a
faire
Compilé avec succès ..
Cette solution fonctionne également pour OS X. Remplacez l'étape 2 par brew install cmake doxygen openssl-devel