私はmosquittoの拡張機能を書いていますが、srcフォルダに行った変更だけが最終的なmosquittoサーバに反映されています。 mosquitto_pub/mosquitto_subクライアント。私はもともとCMakeをセットアップしてそのすべてをコンパイルしましたが、今度はクライアント/サーバを再構築するために、make clean
を実行してから、srcとclientフォルダにmake
を実行します。彼らはうまくコンパイルされ、新しいクライアントが構築されますが、クライアント/ libフォルダ内のcファイルで行った変更は、実際にはコンパイルされたプログラムにはありません。誰が何が起こっているのか知っていますか?コンパイル方法や実行方法について誤解していますか?Mosquitto - クライアント/ 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を受け取ったときに何もしませんが、コンパイルして再実行すると、標準のmosquittoのようにCONNACKを処理します。
編集:私は問題のテストをもう少しやったことがあり、私は奇妙なものを見つけました。いずれかのファイルでメソッド全体を削除すると、メソッドが存在しないためコンパイルが失敗します。メソッドの中のすべてを削除すれば、コンパイルは成功し、削除したものがまだ残っているかのように動作します。