Использование https://github.com/eclipse/paho.mqtt.cpp со сборкой cmake
Я немного новичок в CMake
. Так что это может быть вопрос новичка..
Я пытаюсь создать проект cpp с CMake
. Я бы хотел, чтобы моя программа была опубликована у брокера mqtt. Я работаю в Linux.
Итак, я установил https://github.com/eclipse/paho.mqtt.cpp
и соответствующий проект c, выполнив (бок о бок)
$ 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
согласно документации, а затем делать.
$ git clone https://github.com/eclipse/paho.mqtt.cpp
$ mkdir build
$ cd build
$ cmake ../
$ make
$ sudo make install
что все работало нормально без каких-либо ошибок.. Теперь, что я могу поместить в свой собственный файл cmakelists в свой собственный проект, чтобы я мог использовать библиотеки? Так что я могу.
#include "mqtt/async_client.h"
int main(int argc, char *argv[]){
std::cout << "Hello World!" << std::endl;
mqtt::async_client cli(DFLT_ADDRESS, "", 120, PERSIST_DIR);
return 0;
}
Я пробовал простой.
cmake_minimum_required(VERSION 2.8.9)
project (hello)
find_package(PahoMqttCpp REQUIRED)
add_executable(hello helloworld.cpp)
target_link_libraries(hello ${PAHO_CPP_LIB})
Но этого, похоже, недостаточно.. Я понимаю
helloworld.cpp:(.text+0xd3): undefined reference to `mqtt::async_client::~async_client()'
Любая помощь будет оценена.
1 ответ
Хорошо, немного покопавшись, я нашел, что нужно написать:
target_link_libraries(hello paho-mqttpp3 paho-mqtt3as)