Set Opencv path for a c++ project using Cmake

2019-04-28 12:49发布

I have two Opencvs, opencv-2.4.10 is installed in /usr and opencv-3.1 is installed in /usr/local. I can set the opencv path in Eclipse easily. In cmake, how can I set the path for one of the opencvs I like to use for that project? Thanks

标签: opencv cmake
3条回答
贪生不怕死
2楼-- · 2019-04-28 13:09

I don't have a Linux machine to test it on but this is how I do it on Windows 10 64bit.

I only added a line in the CmakeLists.txt in my program to set the variable OpenCV_DIR used by CMake.

For example, if OpenCV is installed in C:/opencv, I add

SET("OpenCV_DIR" "C:/opencv")

in my CMakeLists.txt.

In your case, it should be something like

SET("OpenCV_DIR" "/usr/opencv-2.4.10")

But, as I said, I never tested this on Linux.

查看更多
SAY GOODBYE
3楼-- · 2019-04-28 13:10

None of the other answers worked for me (linux, opencv 4.0.0, haven't tested yet with opencv 3.x.x).

Adding the following before the line find_package(...) in the CMakeLists.txt worked:

set(OpenCV_DIR /path/to/opencv_install_dir/lib/cmake/opencv4)

If opencv was compiled from source with a none standard installation target directory, then /path/to/opencv_install_dir is (should be) known, otherwise search for the location of the directory structure lib/cmake/opencv*.

查看更多
4楼-- · 2019-04-28 13:13

This question is a duplicate of How to force c++ compiler use one of different installed package's versions, using CMake? but it is found by search engines so I add the answer from texasflood that I found to be working with CMake 2.8.12.2 and OpenCV 3.2.0 on Ubuntu 12.4:

Simply change the find_package command:

find_package(OpenCV REQUIRED PATHS "/usr/opencv-2.4.10")
查看更多
登录 后发表回答