如何在Clion中清除CMake缓存?

45

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

除手动从Clion为构建项目创建的临时文件夹中删除所有文件外,还有没有明确刷新CMake缓存的方法?


4
不必删除所有文件,只需删除CMakeCache.txt文件即可。 - Cristian Bidea
2个回答

71

从CLion 1.5 144.3143(2016-01-20)开始,您可以清除cmake缓存而不会丢失CLion索引,并且无需重新启动(意味着:即使在大型项目上也非常快):

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

如果这些原因不足够,或者您有旧版本的CLion,则可以进行更彻底的操作:

File | "Invalidate Caches / Restart" 

然后点击"Invalidate and restart"。

修改

  • 2016-01-20:添加了使用新版CLion可用的更快速的方法。

1
该消息明确说明了这一点,但请注意,这将清除您的本地历史记录。如果您不想这样做,可以尝试Cristian Bidea的建议,删除CMakeCache.txt文件。 - Christopher Schneider
2
请注意,“使无效并重新启动”将删除所有CLion项目的缓存,而不仅仅是当前打开的项目。此外,有时我不得不手动清理此操作后留下的残留物和/或重新导入项目。 - silentorb
更新了Mac OS X El Capitan之后遇到了这个问题:"/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk"路径未找到,所以这个命令解决了这个问题!谢谢。 - Gencebay
我执行了“重置缓存并重新加载项目”,现在clion不再调用cmake来重新生成make文件:错误:ERROR null:未提供cmake脚本。 错误:ERROR null:处理参数时出现问题。 中止。 你知道我怎么解决这个问题吗? - DaveFar
@DaveFar:你遵循了建议1。我的回答说:“如果出于某些原因这不够用,…” 你试过建议2吗? - marco.m
显示剩余2条评论

1
这个缓存有一些魔力。有一次我的一个变量得到了错误的值:由于某种原因,cmake在mono.framework中找到了一些损坏的freetype包含文件,并尝试使用它们来编译我的项目。显然编译失败了。
我尝试删除CMakeCache.txt并重新构建项目,但是不正确的路径又回来了。即使在我删除了mono.framework目录之后!
解决方案是从缓存中删除不正确的行并重新启动构建。这样cmake就得到了正确的路径,构建也成功了。
更新: 当我“重新加载cmake项目”时,不正确的值又回来了。删除$HOME/Library/Caches/clion11/cmake/generated/目录中的所有内容(对于OS X)似乎最终解决了这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接