cmake find_package 指定路径
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)
其中returns一个错误:
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 documentation 中,您可以使用 PATHS
设置要搜索的路径,您缺少 S... 您也可以执行以下操作:
find_package (<package> PATHS paths... NO_DEFAULT_PATH)
find_package (<package>)
这将检查您首先写入的路径,如果找到,它将 found 设置为 true,第二条指令将被跳过。
此外,您可以使用 EXACT
选项来匹配特定版本,以防它尝试 select 3.4 因为它是较新的版本。
find_package(OpenCV 3.1 EXACT REQUIRED PATHS /usr/local/opencv3.1)
希望对您有所帮助,如果没有,请发表评论
我的机器上安装了 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)
其中returns一个错误:
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 documentation 中,您可以使用 PATHS
设置要搜索的路径,您缺少 S... 您也可以执行以下操作:
find_package (<package> PATHS paths... NO_DEFAULT_PATH)
find_package (<package>)
这将检查您首先写入的路径,如果找到,它将 found 设置为 true,第二条指令将被跳过。
此外,您可以使用 EXACT
选项来匹配特定版本,以防它尝试 select 3.4 因为它是较新的版本。
find_package(OpenCV 3.1 EXACT REQUIRED PATHS /usr/local/opencv3.1)
希望对您有所帮助,如果没有,请发表评论