当我运行 cmake
和一些项目,例如 caffe
或 gflags
时,它会在系统级别写入一些信息。具体来说,在linux系统上,会生成$HOME/.cmake/Caffe
和$HOME/.cmake/gflags
我的问题是此信息此后用于我编译的任何项目。结果,在 $HOME/.cmake
中引用的程序被(部分)找到,即使我不想要它(就我而言,我定义了外部变量来控制外部程序cmake
允许考虑给定的编译)。
当前的解决方案是在需要时删除目录 $HOME/.cmake
(即在编译我的新程序之前)。我考虑在 .bashrc
中添加一个 rm -rf $HOME/.cmake
但这并不完全令人满意(也不复杂!)。谁能提出更好的解决方案?
注意:问题中的“系统缓存”表达可能是错误的。如果能获得更好的任期,我将不胜感激。感谢您对此的任何反馈(实际上,如果我知道正确的表达方式,我可能已经在网上找到了解决方案......)
编辑:
一旦您知道“系统缓存”实际上是 User Package Registry 答案很简单。见下文...
最佳答案
$HOME/.cmake
目录是用户包注册表。要避免 find_package()
在此目录中搜索,请使用选项 NO_CMAKE_PACKAGE_REGISTRY
。请参阅其文档的第 6 点:
关于linux - 如何避免 cmake 读取其 "system cache"$HOME/.cmake/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39289915/