Я пишу расширение для mosquitto, однако у меня возникла проблема, что только изменения, которые я делаю в папке src, фактически отражаются в окончательном сервере mosquitto и клиентах mosquitto_pub/mosquitto_sub. Первоначально я настроил его с помощью CMake и скомпилировал все это, а теперь, чтобы перестроить клиент/сервер, я запускаю make clean
, а затем make
в папках src и client. Они компилируются нормально, и создаются новые клиенты, однако никаких изменений, которые я сделал в файлах c в папках client/lib, на самом деле нет в скомпилированных программах. Кто-нибудь знает, что происходит? Я что-то неправильно понимаю в том, как его скомпилировать или как он работает?
например. Я изменил _mosquitto_handle_connack() в lib/read_handle_client.c, чтобы напечатать другое сообщение в строке 32 (_mosquitto_log_printf(mosq, MOSQ_LOG_DEBUG, "Client %s received CONNACK", mosq->id);
), однако независимо от того, что я изменил текст, он все равно отображает исходный текст. Я даже изменил _mosquitto_packet_handle() в lib/read_handle.c так, чтобы при получении CONNACK он ничего не делал, но когда я компилирую и повторно запускаю, он по-прежнему обрабатывает CONNACK, как в стандартном mosquitto.
Редактировать: я провел еще немного тестирования этой проблемы и нашел кое-что странное. Если я удалю весь метод в одном из файлов, компиляция завершится ошибкой, потому что метод не существует. Если я просто удалю все внутри метода, компиляция завершится успешно, и программа будет действовать так, как будто все, что я только что удалил, все еще там.