Я использую клиент для отправки данных через MQTT и использую библиотеки Paho MQTT c ++.
Теперь мне нужно добавить поддержку аутентификации пользователей и паролей, и когда я пытаюсь установить их так:
std::string user = "user";
std::string password = "password";
mqtt::connect_options connOpts;
connOpts.set_user_name(user);
connOpts.set_password(password);
и я получаю
неопределенная ссылка на mqtt :: connect_options :: set_user_name (std: string
Const&)
но в заголовочном файле connection_options.h
/**
* Sets the user name to use for the connection.
* @param userName
*/
void set_user_name(const std::string& userName);
то же самое происходит с set_password (пароль);
Другая проблема, с которой я столкнулся, заключается в том, что я не смог сохранить соединение, потому что у меня не может быть объекта mqtt :: async_client, глобального в классе, я могу создать его только внутри функции публикации.
Заранее спасибо.
Я столкнулся с этой проблемой и исправил ее, добавив свой собственный код в set_user_name а также Установка пароля функции в connect_options.h (которые не инициализируются ни в каком другом файле в оболочке C ++).
void set_user_name(const std::string& userName){
const char * usr = userName.c_str();
opts_.username = usr;
}void set_password(const std::string& password){
const char * pw = password.c_str();
opts_.password = pw;
}
Других решений пока нет …