我相信有一个简单的命令可以做到这一点。
我在/usr/local中手动安装了opencv 2.4.3。
然后我将其删除并从arch社区(我使用的是Arch linux)安装了安装在/usr中的OpenCV 2.4.5
现在,当我尝试在cmake项目中使用OpenCV时,cmake会返回/usr/local中的旧路径。
我做了一些调查,发现如果从/usr/share/opencv/OpenCVConfig.c中的get_filename_component(OpenCV_CONFIG_PATH ="${CMAKE_CURRENT_LIST_FILE}“补丁缓存)行中删除"CACHE”,我就会得到正确的路径。
这就是我的问题。如何清除cmake缓存?我说的是cmake的内部缓存,而不是应用程序的缓存,它可以通过删除CMakeCache.txt来删除。有命令吗?或者cmake缓存目录/文件位于何处?我相信这个问题有一个简单的答案。我知道如何设置/取消设置缓存变量,但不知道如何清除整个缓存。
发布于 2013-11-28 07:30:27
问题出在pkg-config设置上。我没有删除旧的.pc文件并调整PKG_CONFIG_PATH。pkg-config使用的是/usr/local/lib/pkgconfig中的opencv.pc文件,而不是/usr/lib/pkgconfig中的文件。我认为cmake在内部并没有使用任何缓存。
发布于 2016-10-05 00:43:03
重新编译依赖库解决了我的问题。
我有一个依赖于Opencv的项目。当我还在使用Xcode7.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/SDKs/MacOSX10.12.sdk".但不管怎样,当cmake生成我的项目时,对opencv的引用总是指向旧的xcode。
后来我意识到opencv是用旧的Xcode生成的,所以我用新的Xcode重新编译了opencv,我的项目被正确编译了。
https://stackoverflow.com/questions/17445857
复制相似问题