我有两个Opencv,opencv-2.4.10安装在/ usr中,opencv-3.1安装在/ usr/local中.我可以轻松地在Eclipse中设置opencv路径.在cmake中,如何设置我喜欢用于该项目的opencv之一的路径?谢谢
这个问题与如何使用CMake强制c ++编译器使用不同已安装软件包的版本之一重复。但是它是由搜索引擎找到的,因此我添加了来自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")
Run Code Online (Sandbox Code Playgroud)
其他答案都不适合我(linux,opencv 4.0.0,尚未使用 opencv 3.xx 进行测试)。
find_package(...)
在 CMakeLists.txt 中的行之前添加以下内容:
set(OpenCV_DIR /path/to/opencv_install_dir/lib/cmake/opencv4)
Run Code Online (Sandbox Code Playgroud)
如果 opencv 是从非标准安装目标目录的源代码编译的,那么/path/to/opencv_install_dir
(应该)是已知的,否则搜索目录结构的位置lib/cmake/opencv*
。
我没有 Linux 机器来测试它,但这是我在 Windows 10 64 位上进行测试的方法。
我只在程序中添加了一行来设置CMake 使用的CmakeLists.txt
变量。OpenCV_DIR
例如,如果 OpenCV 安装在 中C:/opencv
,我添加
SET("OpenCV_DIR" "C:/opencv")
Run Code Online (Sandbox Code Playgroud)
在我的CMakeLists.txt
。
在你的情况下,它应该是这样的
SET("OpenCV_DIR" "/usr/opencv-2.4.10")
Run Code Online (Sandbox Code Playgroud)
但是,正如我所说,我从未在 Linux 上测试过这个。