【发布时间】:2016-05-20 01:43:26
【问题描述】:
我有两个Opencv,opencv-2.4.10安装在/usr,opencv-3.1安装在/usr/local。我可以轻松地在 Eclipse 中设置 opencv 路径。在 cmake 中,如何设置我喜欢用于该项目的 opencvs 之一的路径? 谢谢
【问题讨论】:
我有两个Opencv,opencv-2.4.10安装在/usr,opencv-3.1安装在/usr/local。我可以轻松地在 Eclipse 中设置 opencv 路径。在 cmake 中,如何设置我喜欢用于该项目的 opencvs 之一的路径? 谢谢
【问题讨论】:
这个问题与How to force c++ compiler use one of different installed package's versions, using CMake? 重复,但它被搜索引擎发现,所以我添加了answer from texasflood,我发现它可以在 Ubuntu 12.4 上使用 CMake 2.8.12.2 和 OpenCV 3.2.0:
只需更改find_package 命令:
find_package(OpenCV REQUIRED PATHS "/usr/opencv-2.4.10")
【讨论】:
其他答案都不适合我(linux,opencv 4.0.0,尚未使用 opencv 3.x.x 进行测试)。
在 CMakeLists.txt 中的 find_package(...) 行之前添加以下内容:
set(OpenCV_DIR /path/to/opencv_install_dir/lib/cmake/opencv4)
如果opencv是用非标准安装目标目录从源代码编译的,那么/path/to/opencv_install_dir是(应该)已知的,否则搜索目录结构的位置lib/cmake/opencv*。
【讨论】:
set(OpenCV_DIR "/path/to/opencv_dir/)"
我没有在 Linux 机器上对其进行测试,但这是我在 Windows 10 64 位上进行测试的方式。
我只在程序的CmakeLists.txt中添加了一行来设置CMake使用的变量OpenCV_DIR。
比如C:/opencv中安装了OpenCV,我加了
SET("OpenCV_DIR" "C:/opencv")
在我的CMakeLists.txt。
在你的情况下,它应该是这样的
SET("OpenCV_DIR" "/usr/opencv-2.4.10")
但是,正如我所说,我从未在 Linux 上测试过。
【讨论】: