linux - 如何避免 cmake 读取其 "system cache"$HOME/.cmake/

标签 linux cmake caffe

当我运行 cmake 和一些项目,例如 caffegflags 时,它会在系统级别写入一些信息。具体来说,在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 点:

https://cmake.org/cmake/help/v3.0/command/find_package.html

关于linux - 如何避免 cmake 读取其 "system cache"$HOME/.cmake/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39289915/

相关文章:

c - 学生信息系统编译错误

java - 如何使用 Glassfish 实现基本身份验证?

visual-studio - 如何创建一个cmake变量

multithreading - 如何使用 Caffe 启用多线程?

machine-learning - 关于 Caffe 中的二元分类

c++ - Caffe GoogleNet classification.cpp 给出随机输出

linux - 使用 sed 提取子表达式

c - KILL 信号是否立即退出进程?

c++ - poco cmake 文件和本地库

linux - 使用 CMake 在库中查找符号