Ошибка LNK2019 с Eclipse Paho MQTT C для проекта Visual Studio C ++ (win64)

Я хочу использовать библиотеку Eclipse Paho MQTT C в простой программе на C ++. Для библиотеки я использовал готовые двоичные файлы для Windows — см. https://projects.eclipse.org/projects/technology.paho/downloads

  • Клиент C для Windows 1.3.0 — 64 бит

Я нашел точно такую ​​же проблему в этом разговоре Ошибка LNK2019 при компиляции проекта Visual C ++ Win32 с Eclipse Paho MQTT.

Для связывания в include у меня есть следующие настройки:

  • C / C ++ — Дополнительные включают в себя: xxx \ paho \ eclipse-paho-mqtt-c-win64-1.3.0 \ include
  • Linker — дополнительные каталоги дополнительных библиотек
  • Линкер — вход — дополнительные зависимости:
  • затмить-ПОЗ-MQTT-C-win64-1.3.0 \ Lib \ ПОЗ-mqtt3cs.lib
  • затмить-ПОЗ-MQTT-C-win64-1.3.0 \ Lib \ ПОЗ-mqtt3c.lib
  • затмить-ПОЗ-MQTT-C-win64-1.3.0 \ Lib \ ПОЗ-mqtt3a.lib
  • затмить-ПОЗ-MQTT-C-win64-1.3.0 \ Lib \ ПОЗ-mqtt3as.lib

Мой код выглядит следующим образом:

#include "stdafx.h"#include <stdio.h>
#include <stdlib.h>
#include <string.h>

extern "C" {
#include <MQTTClient.h>
#include <MQTTClientPersistence.h>
}
#define ADDRESS     "xxx"#define CLIENTID    "ExampleClientSub"#define TOPIC       "xxx"#define PAYLOAD     "Hello World!"#define QOS         1
#define TIMEOUT     10000L

int main()
{
MQTTClient client;
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
int rc;
int ch;

MQTTClient_create(&client, ADDRESS, CLIENTID,
MQTTCLIENT_PERSISTENCE_NONE, NULL);
conn_opts.keepAliveInterval = 20;
conn_opts.cleansession = 1;
conn_opts.username = "roman.busse";
conn_opts.password = "VojUriLKhOsmzUJQ1lld";

MQTTClient_setCallbacks(client, NULL, connlost, msgarrvd, delivered);

if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS)
{
printf("Failed to connect, return code %d\n", rc);
exit(EXIT_FAILURE);
}
printf("Subscribing to topic %s\nfor client %s using QoS%d\n\n""Press Q<Enter> to quit\n\n", TOPIC, CLIENTID, QOS);
MQTTClient_subscribe(client, TOPIC, QOS);

do
{
ch = getchar();
} while (ch != 'Q' && ch != 'q');

MQTTClient_unsubscribe(client, TOPIC);
MQTTClient_disconnect(client, 10000);
MQTTClient_destroy(&client);

return 0;
}

Как вы видите, я сказал компилятору: «Да, это C lib». Но в целом я получаю те же ошибки LNK2019 …

Код серьезности Описание Состояние подавления строки файла проекта
Ошибка LNK2019: неразрешенный внешний символ _MQTTClient_setCallbacks
ссылка в функции
_main paho_test C: \ Users \ rtreiber \ Documents \ visual studio 2017 \ Проекты \ paho_test \ paho_test \ paho_test.obj 1
Ошибка LNK2019: неразрешенный внешний символ _MQTTClient_create ссылается
в функции _main paho_test C: \ Users \ rtreiber \ Documents \ visual studio
2017 \ Проекты \ paho_test \ paho_test \ paho_test.obj 1
Ошибка LNK2019: неразрешенный внешний символ _MQTTClient_connect
ссылка в функции
_main paho_test C: \ Users \ rtreiber \ Documents \ visual studio 2017 \ Проекты \ paho_test \ paho_test \ paho_test.obj 1
Ошибка LNK2019: неразрешенный внешний символ _MQTTClient_disconnect
ссылка в функции
_main paho_test C: \ Users \ rtreiber \ Documents \ visual studio 2017 \ Проекты \ paho_test \ paho_test \ paho_test.obj 1
Ошибка LNK2019, неразрешенный внешний символ _MQTTClient_subscribe
ссылка в функции
_main paho_test C: \ Users \ rtreiber \ Documents \ visual studio 2017 \ Проекты \ paho_test \ paho_test \ paho_test.obj 1
Ошибка LNK2019, неразрешенный внешний символ _MQTTClient_unsubscribe
ссылка в функции
_main paho_test C: \ Users \ rtreiber \ Documents \ visual studio 2017 \ Проекты \ paho_test \ paho_test \ paho_test.obj 1
Ошибка LNK2019: неразрешенный внешний символ _MQTTClient_freeMessage
упоминается в функции «int __cdecl msgarrvd (void *, char *, int, struct
MQTTClient_message *) «(? Msgarrvd @@ YAHPAXPADHPAUMQTTClient_message @@@ Z) paho_test C: \ Users \ rtreiber \ documents \ visual
студия 2017 \ Projects \ paho_test \ paho_test \ paho_test.obj 1
Ошибка LNK2019: неразрешенный внешний символ _MQTTClient_free ссылается
в функции «int __cdecl msgarrvd (void *, char *, int, struct
MQTTClient_message *) «(? Msgarrvd @@ YAHPAXPADHPAUMQTTClient_message @@@ Z) paho_test C: \ Users \ rtreiber \ documents \ visual
студия 2017 \ Projects \ paho_test \ paho_test \ paho_test.obj 1
Ошибка LNK2019: неразрешенный внешний символ _MQTTClient_destroy
ссылка в функции
_main paho_test C: \ Users \ rtreiber \ documents \ visual studio 2017 \ Projects \ paho_test \ paho_test \ paho_test.obj 1 Ошибка LNK1120 9
неразрешенные внешние ссылки paho_test C: \ Users \ rtreiber \ documents \ visual
студия 2017 \ Projects \ paho_test \ Debug \ paho_test.exe 1

Так есть идеи?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]