Как связать PAHO MQTT c в существующей директории проекта, чтобы избежать неопределенной ссылки на MQTTClient_create? - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть структура проекта, как показано ниже,

root@user-VirtualBox:/home/user/octane_etk_sample-6.0.0.240# ls
bin                 include   paho.mqtt.c    speedway_embedded_example.cpp
cap                 lib       paho.mqtt.cpp  VERSION
cap_description.in  Makefile  SCMREV

Теперь мне нужно связать заголовки paho в существующей директории проекта, т.е. /home/user/octane_etk_sample-6.0.0.240, чтобы я мог получить доступ к файлам заголовков paho в файле tagret c ++, т. е. speedway_embedded_example. cpp

$ git clone https://github.com/eclipse/paho.mqtt.c.git
$ cd paho.mqtt.c
$ git checkout v1.3.1

$ cmake -Bbuild -H. -DPAHO_WITH_SSL=ON -DPAHO_ENABLE_TESTING=OFF
$ sudo cmake --build build/ --target install
$ sudo ldconfig

Я включил заголовки paho c в мои целевые файлы как

extern "C"{
#include <MQTTClient.h>
#include <MQTTClientPersistence.h>
}

Когда я создаю целевой файл, т. Е. Speedway_embedded_example. cpp, он говорит:

root@user-VirtualBox:/home/mindlogic/octane_etk_sample-6.0.0.240# make
mkdir -p ./bin
g++ \
    -m32 -Wno-write-strings \
    -Iinclude \
    speedway_embedded_example.cpp \
    -Llib -lltkcpp_x86 -lltkcppimpinj_x86 -lxml2_x86 \
    -L/usr/bin -ldl -lssl -lcrypto \
    -o bin/speedwayr_x86
/tmp/ccmMCcyP.o: In function `CMyApplication::printOneTagReportData(LLRP::CTagReportData*)':
speedway_embedded_example.cpp:(.text+0x245f): undefined reference to `MQTTClient_create'
collect2: error: ld returned 1 exit status
Makefile:47: recipe for target 'bin/speedwayr_x86' failed
make: *** [bin/speedwayr_x86] Error 1

Может ли кто-нибудь помочь мне связать paho для разрешения неопределенной ссылки на MQTTClient_create?

...