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