1

プロジェクトの cmake 依存関係に libavahi-client3 を追加する必要があります。libavahi-client3 と libavahi-common3 の存在も確認する必要があります。現在のライブラリ(avahi)のみの問題

これらのことをしようとしています:

find_package(libavahi-common3)
if(NOT libavahi-common3_FOUND)
message(ERROR " libavahi-common3 is not found")
endif(NOT libavahi-common3_FOUND)

またはこのバリアント:

find_library(AVAHI_COMMON_LIBRARY NAMES libavahi-common3)
if(NOT AVAHI_COMMON_LIBRARY_FOUND)
message(ERROR " libavahi-common3 is not found")
endif(NOT AVAHI_COMMON_LIBRARY_FOUND)

どちらも機能しません。findAvahi.cmake などを検索しましたが、何も見つかりませんでした。では、独自の検索モジュールを作成する必要がありますか、それとも別のより良いオプションがありますか?

4

1 に答える 1

1

現在、CMake に同梱されている avahi の検索スクリプトはありません。これが、最初の例が機能しない理由です。find_package外部検索スクリプトを実行するだけで、それ自体で検索を実行するわけではないことを理解することが重要です。

2 番目の例は壊れており、find_libraryとのイディオムが混在してfind_packageいます。必要なライブラリとインクルード パスを見つけるのに役立つfind_libraryfind_pathのドキュメントを読んでください。

必要に応じて、後でそれを検索スクリプトに変えることができます (CMake のモジュール ディレクトリ内のスクリプトを見て、そのようなスクリプトがどのように見えるかを理解してください)。これにより、よりコンパクトな find_package を使用してライブラリを再度見つけることができます。さまざまなプラットフォームで適切に機能する検索スクリプトを作成することは複雑な作業であり、それを正しく行うにはいくらかの研究努力が必要になることに注意してください。

于 2013-09-05T07:59:19.957 に答える