44

我目前正在尝试在我的一个项目中交换静态库,这需要交换 find_package() 命令以显式链接到静态库。我遇到的一个问题是,即使在删除 find_package() 命令重新加载 CMake 项目后,旧变量仍然存在。

除了手动删除 Clion 为构建项目而创建的临时文件夹中的所有文件之外,还有其他方法可以显式刷新 CMake 缓存吗?

4

2 回答 2

70

从 CLion 1.5 144.3143 (2016-01-20) 开始,您可以在丢失 CLion 索引且不重新启动的情况下清除 cmake 缓存(意思是:非常快,也适用于大型项目):

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

如果由于某些原因这还不够,或者如果你有一个旧的 CLion,你可以做更激进的:

File | "Invalidate Caches / Restart" 

并单击“无效并重新启动”。

编辑

  • 2016-01-20:添加较新的 CLion 可用的更快方法。
于 2015-02-03T21:54:49.070 回答
1

这个缓存有一些魔力。有一次我得到了一个变量的错误值:由于某种原因,cmake 发现了一些破坏的 freetype 包含在里面mono.framework(另一个不喜欢 mono 的原因......)并试图用它们来编译我的项目。显然编译失败。

我试图删除CMakeCache.txt并重建项目,但不正确的路径回来了。即使在我删除了mono.framework目录之后!

解决方案是从缓存中删除不正确的行并重新启动构建。之后,cmake 获得了正确的路径并成功构建。

UPD: 在我“重新加载 cmake 项目”后,错误的值又回来了。删除$HOME/Library/Caches/clion11/cmake/generated/dir 中的所有内容(对于 OS X)似乎最终解决了这个问题。

于 2015-10-22T12:26:52.363 回答