私は現在、静的ライブラリへの明示的なリンクのためにfind_package()コマンドを交換する必要があるプロジェクトの1つで、静的ライブラリを交換しようとしています。私が遭遇した問題の1つは、CMakeプロジェクトをリロードするfind_package()コマンドを削除しても、古い変数がまだ存在していることです。
プロジェクトをビルドするためにClionが作成する一時フォルダーからすべてのファイルを手動で削除する以外に、CMakeキャッシュを明示的にフラッシュする方法はありますか?
CLion 1.5 144.3143(2016-01-20)以降、cmakeキャッシュをクリアできますwithout CLionインデックスを失い、without再起動(つまり:非常に高速で、巨大なプロジェクト):
Tool | CMake | "Reset cache and reload project".
何らかの理由でそれが十分でない場合、または古いCLionを使用している場合は、より過激な方法を実行できます。
File | "Invalidate Caches / Restart"
「無効にして再起動」をクリックします。
編集
このキャッシュにはいくつかの魔法があります。私は一度、1つの変数に悪い値を取得しました:何らかの理由でcmakeがmono.framework
(monoを嫌う別の理由)の中にある壊れたfreetypeを見つけ、それらを使用してプロジェクトをコンパイルしようとしました。明らかにコンパイルに失敗しました。
CMakeCache.txt
を削除してプロジェクトを再構築しようとしましたが、間違ったパスが戻ってきました。 mono.framework
dirを削除した後でも!
解決策は、キャッシュから誤った行を削除し、ビルドを再開することでした。そのcmakeが正しいパスを取得し、ビルドが成功した後。
PD:「cmakeプロジェクトを再読み込み」した後、誤った値が返されました。 $HOME/Library/Caches/clion11/cmake/generated/
dir(OS Xの場合)のすべてを削除すると、最終的に問題が解決するようです。