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
问题:
回答1:
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")
回答2:
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.
回答3:
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*
.