Как связать PAHO MQTT c в существующем каталоге проекта, чтобы избежать неопределенной ссылки на MQTTClient_create?
У меня есть структура проекта, как показано ниже,
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?