web-dev-qa-db-ja.com

ClionでCMakeキャッシュをクリアする方法は?

私は現在、静的ライブラリへの明示的なリンクのためにfind_package()コマンドを交換する必要があるプロジェクトの1つで、静的ライブラリを交換しようとしています。私が遭遇した問題の1つは、CMakeプロジェクトをリロードするfind_package()コマンドを削除しても、古い変数がまだ存在していることです。

プロジェクトをビルドするためにClionが作成する一時フォルダーからすべてのファイルを手動で削除する以外に、CMakeキャッシュを明示的にフラッシュする方法はありますか?

39
Arkadi Sim

CLion 1.5 144.3143(2016-01-20)以降、cmakeキャッシュをクリアできますwithout CLionインデックスを失い、without再起動(つまり:非常に高速で、巨大なプロジェクト):

Tool | CMake | "Reset cache and reload project".

何らかの理由でそれが十分でない場合、または古いCLionを使用している場合は、より過激な方法を実行できます。

File | "Invalidate Caches / Restart" 

「無効にして再起動」をクリックします。

編集

  • 2016-01-20:より新しいCLionで利用可能なより高速なメソッドを追加します。
61
marco.m

このキャッシュにはいくつかの魔法があります。私は一度、1つの変数に悪い値を取得しました:何らかの理由でcmakeがmono.framework(monoを嫌う別の理由)の中にある壊れたfreetypeを見つけ、それらを使用してプロジェクトをコンパイルしようとしました。明らかにコンパイルに失敗しました。

CMakeCache.txtを削除してプロジェクトを再構築しようとしましたが、間違ったパスが戻ってきました。 mono.framework dirを削除した後でも!

解決策は、キャッシュから誤った行を削除し、ビルドを再開することでした。そのcmakeが正しいパスを取得し、ビルドが成功した後。

PD:「cmakeプロジェクトを再読み込み」した後、誤った値が返されました。 $HOME/Library/Caches/clion11/cmake/generated/ dir(OS Xの場合)のすべてを削除すると、最終的に問題が解決するようです。

1
Equidamoid