我目前正在尝试在我的一个项目中交换静态库,这需要交换 find_package() 命令以显式链接到静态库。我遇到的一个问题是,即使在删除 find_package() 命令重新加载 CMake 项目后,旧变量仍然存在。
除了手动删除 Clion 为构建项目而创建的临时文件夹中的所有文件之外,还有其他方法可以显式刷新 CMake 缓存吗?
从 CLion 1.5 144.3143 (2016-01-20) 开始,您可以在不丢失 CLion 索引且不重新启动的情况下清除 cmake 缓存(意思是:非常快,也适用于大型项目):
Tool | CMake | "Reset cache and reload project".
如果由于某些原因这还不够,或者如果你有一个旧的 CLion,你可以做更激进的:
File | "Invalidate Caches / Restart"
并单击“无效并重新启动”。
编辑
这个缓存有一些魔力。有一次我得到了一个变量的错误值:由于某种原因,cmake 发现了一些破坏的 freetype 包含在里面mono.framework
(另一个不喜欢 mono 的原因......)并试图用它们来编译我的项目。显然编译失败。
我试图删除CMakeCache.txt
并重建项目,但不正确的路径回来了。即使在我删除了mono.framework
目录之后!
解决方案是从缓存中删除不正确的行并重新启动构建。之后,cmake 获得了正确的路径并成功构建。
UPD:
在我“重新加载 cmake 项目”后,错误的值又回来了。删除$HOME/Library/Caches/clion11/cmake/generated/
dir 中的所有内容(对于 OS X)似乎最终解决了这个问题。