5

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

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

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

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

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

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

4

2 回答 2

1

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

于 2013-11-27T23:30:27.343 回答
0

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

我有一个依赖于 Opencv 的项目。当我还在使用Xcode 7.2beta时,MacOSX的SDK路径是“ /Applications/xcode7.2beta.app /Content/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk 。因此,cmake 在“/Applications/xcode7.2beta.app/”下使用 MacOSX10.11.sdk 生成并编译了 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,我的项目编译正确。

于 2016-10-04T16:43:03.370 回答