raspberry pi — установите и используйте библиотеки MQTT Paho для переполнения стека

Я надеюсь, что моя проблема проста для решения. Я должен использовать протокол mqtt с моей Raspberry Pi v2, так что теперь я пробую его с библиотеками Paho:

http://www.eclipse.org/paho/

Я использую язык C ++, поэтому я сначала написал эти команды

git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.c.git
cd org.eclipse.paho.mqtt.c.git
make
sudo make install

а потом эти

git clone http://git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.cpp.git
cd org.eclipse.paho.mqtt.cpp.git
make

Теперь у меня есть два вопроса:

  1. Какую библиотеку я должен включить в свой файл? Я пытаюсь собрать пример на сайте Paho https://www.eclipse.org/paho/clients/cpp/ но если я включаю библиотеку C «MQTTClient.h» (в примере C), она не распознает классы, как mqtt::client, Я пытался включить client.h (я нашел это в документации), но компилятор не находит это.
  2. Почему процедура C ++ для запуска библиотек Paho ничего не устанавливает? Существует только команда make, которая создает библиотеку lib/linmqttpp.so.0.1, Я должен связать это в команде компиляции? Как?

2

Решение

в настоящее время в paho c ++ в проекте git он не собирается должным образом для новых пользователей. когда вы делаете make, он создает пустую библиотеку c ++, поэтому любой код, на который вы ссылаетесь, завершится неудачно с помощью неопределенного метода. Вы можете проверить, запустив эту команду, чтобы увидеть, что доступно в вашей библиотеке.

nm -g lib/linmqttpp.so.0.1

Вы увидите, что он пуст.

Также, если вы скопировали и передали пример кода с веб-сайта, он не будет работать. Ему нужен другой код помимо того, что есть на сайте. Это просто дает вам фрагмент кода.

Пример кода находится в этом каталоге.
src/samples

примеры Paho C ++

В настоящее время make-файл для примеров файлов завершится ошибкой.

Я только что отправил патч в проект, чтобы исправить основную сборку и сборку примеров файлов. Как только это будет применено, проект будет построен правильно, вы можете начать взламывать файлы примеров.

Что касается проекта C ++, который не устанавливает его, потому что в файле make нет цели для установки. если вы хотите сейчас скопировать файлы, созданные в lib, ниже с разрешениями sudo.
/ USR / местные / Библиотека /

Затем вы можете получить доступ к общим библиотекам из любого проекта.

1

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


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