0

glog ライブラリを選択するために、cmake に次の行があります。

find_library(GLOG_LIBRARY libglog $ENV{GLOG_DIR}/x64/Release)
message(${GLOG_LIBRARY})

リリースフォルダーには、次のファイルがあります。

03/03/2015  15:00           308,736 libglog.dll
03/03/2015  15:00            64,998 libglog.exp
03/03/2015  15:00           104,884 libglog.lib
03/03/2015  15:00         3,248,128 libglog.pdb

しかし、cmake を実行すると、GLOG_LIBRARY が libglog_static.lib に設定されていることがわかります。

なぜcmakeは間違ったライブラリを取得するのですか?

4

1 に答える 1

1

問題は、スクリプトの最初の実行後にヒントを使用するようにコードが変更された可能性が高いことです。デフォルトでは、CMake は標準関数のほとんどの値をキャッシュします。

findデフォルトでは、ルーチンは最初に変数がキャッシュに存在するかどうかを確認するため、コードを変更しても機能しないように見える場合があります。新しいバージョンを試す前にキャッシュを手動でクリアする必要があります。または、何らかの構成が変更された場合 (たとえば、バージョンを変更するフラグや解決プロセスを変更するフラグが使用されている場合) は、変数の名前が同じ場合、キャッシュからプルされます。

検索プロセスとパラメーターについては、ドキュメントに記載されています: http://www.cmake.org/cmake/help/v3.0/command/find_library.html

于 2015-03-03T23:41:20.737 に答える