2012-04-18 8 views
2

私はcmakeのの機能を使用しようとしている:C++ライブラリの場合、私がチェックすることができますどのようにCMAKEを使用するC++ライブラリをチェックするためにCHECK_LIBRARY_EXISTSを使用するにはどうすればよいですか?

CHECK_LIBRARY_EXISTS(library function location variable) 

がありますか?

CHECK_LIBRARY_EXISTS(yaml-cpp "YAML::Token" ${YAML-CPP_PATHS} HAVE_YAML-CPP) 
IF(HAVE_YAML-CPP) 
    MESSAGE(STATUS "YAML-CPP libraries founded: OK") 
ENDIF(HAVE_YAML-CPP) 

IF(NOT HAVE_YAML-CPP) 
    MESSAGE(FATAL_ERROR "ERROR: unable to link YAML::Token") 
ENDIF(NOT HAVE_YAML-CPP) 

コードスニップが機能しません。

答えて

5

CheckLibraryExistsモジュールは、C++ではなくCシンボルでのみ動作します。個人的には、ライブラリとインクルードパスを見つけるのにfind_libraryfind_pathを使用します。ライブラリに正しいシンボルが含まれていない場合、リンク中にユーザはすぐに気づくでしょう。

yaml-cppはpkg-configファイルをインストールするので、FindPkgConfigモジュールを使用することもできます。しかし、yaml-cpp自体はCMakeを使ってビルドされているので、実際にyaml-cpp-config.cmakeファイルをインストールするように勧めてください。例えば、詳細についてはtutorialをご覧ください。

関連する問題