使用cmake在项目中链接Opencv
我安装了两个opencv,一个在/ usr/local中,另一个在/ usr中。 因此,对于Opencv2.4.10,/ usr/share/OpenCV具有OpencvConfig.cmake,而对于Opencv3.1.0,/ usr/local/share/OpenCV具有OpencvConfig.cmake。 在我的项目的cmake我设置OPencv2.4.10路径作为使用cmake在项目中链接Opencv
cmake_minimum_required(VERSION 2.8)
project(five-point-nister)
SET("OpenCV_DIR" "/usr/share/OpenCV")
find_package(OpenCV REQUIRED)
add_executable(five-point-nister
five-point.cpp precomp.cpp modelest.cpp)
target_link_libraries(five-point-nister ${OpenCV_LIBS})
但是,当我编译项目,该项目正试图链接到OPencv3.1.0和错误
In file included from /usr/local/include/opencv2/core.hpp:59:0,
from /usr/local/include/opencv2/calib3d.hpp:47,
from /usr/local/include/opencv2/calib3d/calib3d.hpp:48,
通过对,应该是/usr/include/opencv2
,但现在是/usr/local/include/opencv2
。所以我的项目仍然链接到Opencv3.1.0。 我该如何纠正它? 谢谢
我想你安装opencv使用apt-get安装,告诉我,如果我错了。
首先显示opencvConfig.cmake变量,如OpenCV_INCLUDE_DIRS或OpenCV_LIBS。
您可以使用此代码:
cmake_minimum_required(VERSION 2.8)
project(five-point-nister)
SET("OpenCV_DIR" "/usr/share/OpenCV")
find_package(OpenCV REQUIRED)
MESSAGE(STATUS "Include dirs ${OpenCV_INCLUDE_DIRS}")
MESSAGE(STATUS "LINK LIBRARIES ${OpenCV_LIBS}")
add_executable(five-point-nister
five-point.cpp precomp.cpp modelest.cpp)
target_link_libraries(five-point-nister ${OpenCV_LIBS})
这些变量位于您的OpencvConfig.cmake,苏为:
# This file will define the following variables:
# - OpenCV_LIBS : The list of all imported targets for OpenCV modules.
# - OpenCV_INCLUDE_DIRS : The OpenCV include directories.
# - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability.
# - OpenCV_ANDROID_NATIVE_API_LEVEL : Minimum required level of Android API.
# - OpenCV_VERSION : The version of this OpenCV build: "2.4.9"
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION: "2"
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION: "4"
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION: "9"
# - OpenCV_VERSION_TWEAK : Tweak version part of OpenCV_VERSION: "0"
不过,我会建议一些技巧:
使用由于你的静态目录路径,cmake-gui来定义你的OPENCV_DIR目录。
不要使用apt-get install openCV,有时不够更新。
尝试编译opencv或下载预建文件http://opencv.org/downloads.html。
编译opencv并在您的应用程序项目中设置您的OPENCV_DIR位于之前编译的编译目录中。
干杯。
我从源代码为Opencv构建。这就是为什么我可以手动设置Opencv的安装文件夹路径。谢谢,我会尝试你的建议。 – batuman
变量'OpenCV_LIBS'和'OpenCV_INCLUDE_DIRS'是什么内容? – Tsyvarev