Ошибка 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
  • Компоновщик - дополнительные каталоги дополнительных библиотек
  • Компоновщик - ввод - дополнительные зависимости:
  • затмение-paho-mqtt-c-win64-1.3.0 \ lib \ paho-mqtt3cs.lib
  • затмение-paho-mqtt-c-win64-1.3.0 \ lib \ paho-mqtt3c.lib
  • затмение-paho-mqtt-c-win64-1.3.0 \ lib \ paho-mqtt3a.lib
  • затмение-paho-mqtt-c-win64-1.3.0 \ lib \ paho-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». Но в целом я получаю те же ошибки LNK2019 ...

Severity Code Description Project File Line Suppression State Error LNK2019 unresolved external symbol _MQTTClient_setCallbacks referenced in function _main paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\paho_test\paho_test.obj 1
Error LNK2019 unresolved external symbol _MQTTClient_create referenced in function _main paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\paho_test\paho_test.obj 1
Error LNK2019 unresolved external symbol _MQTTClient_connect referenced in function _main paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\paho_test\paho_test.obj 1
Error LNK2019 unresolved external symbol _MQTTClient_disconnect referenced in function _main paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\paho_test\paho_test.obj 1
Error LNK2019 unresolved external symbol _MQTTClient_subscribe referenced in function _main paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\paho_test\paho_test.obj 1
Error LNK2019 unresolved external symbol _MQTTClient_unsubscribe referenced in function _main paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\paho_test\paho_test.obj 1
Error LNK2019 unresolved external symbol _MQTTClient_freeMessage referenced in function "int __cdecl msgarrvd(void *,char *,int,struct MQTTClient_message *)" (?msgarrvd@@YAHPAXPADHPAUMQTTClient_message@@@Z) paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\paho_test\paho_test.obj 1
Error LNK2019 unresolved external symbol _MQTTClient_free referenced in function "int __cdecl msgarrvd(void *,char *,int,struct MQTTClient_message *)" (?msgarrvd@@YAHPAXPADHPAUMQTTClient_message@@@Z) paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\paho_test\paho_test.obj 1
Error LNK2019 unresolved external symbol _MQTTClient_destroy referenced in function _main paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\paho_test\paho_test.obj 1 Error LNK1120 9 unresolved externals paho_test C:\Users\rtreiber\documents\visual studio 2017\Projects\paho_test\Debug\paho_test.exe 1

Итак, есть идеи?

Измените вопрос, включив в него полный текст ошибок.

hardillb 27.10.2018 16:52

Я отредактировал ошибки компоновщика, я просмотрел библиотеку и каждую функцию, импортированную с помощью "DLLExport". У меня есть DLL в папке со статическими библиотеками и в папке с исполняемым файлом. Я даже пробовал добавить его как переменную пути -

Rob 29.10.2018 08:18

Новый вывод: если я использую 32-битные двоичные файлы, я могу собрать программу, но ее нельзя запустить, потому что программа работает в 64-битной системе ...

Rob 29.10.2018 14:07
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
696
0

Другие вопросы по теме