清除CMake的内部缓存

时间:2013-07-03 10:41:03

标签: caching opencv cmake

我确信这有一个简单的命令。

我在/ usr / local中手动安装了opencv 2.4.3。

然后我删除了它并从arch社区安装了OpenCV 2.4.5(我使用的是Arch linux),它安装在/ usr

现在,当我尝试在cmake项目中使用OpenCV时,cmake会从/ usr / local返回旧路径。

我做了一些挖掘,发现如果删除" CACHE"从行: get_filename_component(OpenCV_CONFIG_PATH =" $ {CMAKE_CURRENT_LIST_FILE}" PATCH CACHE) 在/usr/share/opencv/OpenCVConfig.cmake我得到了正确的路径。

这指向了我的问题。如何清除cmake缓存?我在谈论cmake的内部缓存而不是应用程序的缓存,可以通过删除CMakeCache.txt来删除它。有命令吗?或者cmake缓存目录/文件位于何处?我相信这是一个简单的答案。 我知道如何设置/取消设置CACHE变量,但不知道如何清除完整的缓存。

2 个答案:

答案 0 :(得分:1)

问题在于pkg-config设置。我没有删除旧的.pc文件并调整了PKG_CONFIG_PATH。 pkg-config使用/ usr / local / lib / pkgconfig中的opencv.pc文件,而不是/ usr / lib / pkgconfig中的文件。我认为,cmake没有内部使用的缓存。

答案 1 :(得分:0)

重新编译依赖库解决了我的问题。

我有一个依赖于Opencv的项目。当我还在使用Xcode 7.2beta时,MacOSX SDK的路径是“/Applications/xcode7.2beta.app/Content/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10 .11.sdk ”。因此,cmake使用MacOSX10.11.sdk在“/Applications/xcode7.2beta.app /".

下生成并编译了opencv库。

几天前,我将我的xcode升级到8.0,xcode的新路径及其SDK是“/Applications/xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer /的SDK /的 MacOSX10.12.sdk ”。但无论如何,当cmake生成我的项目时,对opencv的引用总是指向旧的xcode。

后来我意识到opencv是使用旧的Xcode生成的,所以我用新的Xcode重新编译了opencv,我的项目编译正确。