2017-10-02 5 views
0

mosquitto 확장 프로그램을 작성하고 있지만 src 폴더에서 변경 한 내용 만 최종 모스 킷 서버에 실제로 반영됩니다. mosquitto_pub/mosquitto_sub 클라이언트. 원래 CMake를 설정하고 그 모든 것을 컴파일했고 클라이언트/서버를 다시 빌드하기 위해 make clean을 실행 한 다음 make을 src 및 client 폴더에 실행했습니다. 그들은 잘 컴파일하고 새 클라이언트가 만들어졌지만 client/lib 폴더에있는 c 파일의 변경 사항은 실제로 컴파일 된 프로그램에 없습니다. 누구가 무슨 일이 일어나는지 알아? 컴파일 방법이나 실행 방법에 대한 오해가 있습니까?Mosquitto - client/lib 폴더의 코드를 수정할 수 없습니다.

예 : lib/read_handle_client.c에서 _mosquitto_handle_connack()을 수정하여 32 행 (_mosquitto_log_printf(mosq, MOSQ_LOG_DEBUG, "Client %s received CONNACK", mosq->id);)의 다른 메시지를 인쇄했지만 텍스트를 변경하더라도 원본 텍스트는 계속 표시됩니다. 나는 lib/read_handle.c에서 _mosquitto_packet_handle()을 수정하여 CONNACK을 받았을 때 아무것도하지 않지만 컴파일하고 재실행하면 표준 모스키토처럼 CONNACK을 처리한다.

편집 : 문제를 조금 더 테스트했는데 이상한 것을 발견했습니다. 파일 중 하나에서 전체 메소드를 삭제하면 메소드가 존재하지 않기 때문에 컴파일이 실패합니다. 방금 메서드 안의 모든 내용을 삭제하면 컴파일이 성공하고 방금 삭제 한 모든 내용이 그대로 남아있는 것처럼 프로그램이 작동합니다.

답변

0

나는 문제가 간단하다는 것을 깨달았는데, 클라이언트 앞에 ./이없이 클라이언트를 실행하고 있었기 때문에 클라이언트가 설치하지 않고 8 개월 전에 설치 한 (완전히 잊어 버린) 모기 클라이언트를 실행하고있었습니다. 내가 있던 폴더