[英]cmake find_package specify path
我的机器上安装了2个版本的OpenCV。 一个是在/usr/local/opencv3.1
。 我假设另一个(版本3.4)的安装位置是/usr/local
。 无论如何, find_package(OpenCV 3.0 REQUIRED)
设置OpenCV_DIR:PATH=/usr/local/share/OpenCV
。 该文件夹包含:
haarcascades OpenCVConfig.cmake OpenCVModules-release.cmake
java OpenCVConfig-version.cmake valgrind_3rdparty.supp
lbpcascades OpenCVModules.cmake valgrind.supp
在这种情况下,使用版本3.4。 如何在CMakeLists.txt中指定使用知道其安装位置的其他版本(3.1)? 我试过了:
find_package(OpenCV 3.0 REQUIRED PATH /usr/local/opencv3.1)
哪个返回错误:
Could NOT find OpenCV (missing: PATH /usr/local/opencv3.1) (found suitable version "3.4.1", minimum required is "3.0")
和
set(OpenCV_DIR /usr/local/opencv3.1/OpenCV/*) # also tried OpenCV_ROOT_DIR, OPENCV_ROOT_DIR
find_package(OpenCV 3.0 REQUIRED)
什么也没做。 它仍然找到版本3.4。 我会感激任何帮助。 谢谢。
在find_package文档中,你可以设置一个用PATHS
搜索的路径,你错过了S ...你也可以这样做:
find_package (<package> PATHS paths... NO_DEFAULT_PATH)
find_package (<package>)
这将检查您首先编写的路径,如果找到它将设置为true,第二条指令将被跳过。
此外,您可以使用EXACT
选项匹配特定版本,以防它因为是较新版本而尝试选择3.4。
find_package(OpenCV 3.1 EXACT REQUIRED PATHS /usr/local/opencv3.1)
我希望这有助于,如果没有,写一个评论
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.