我安装了两个 opencv,一个在 /usr/local 中,另一个在 /usr 中。所以 /usr/share/OpenCV 有 Opencv2.4.10 的 OpencvConfig.cmake 和 /usr/local/share/OpenCV 有 Opencv3.1.0 的 OpencvConfig.cmake。在我的项目的 cmake 中,我将 OPencv2.4.10 的路径设置为
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})
Run Code Online (Sandbox Code Playgroud)
但是当我编译项目时,该项目试图链接到 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,
Run Code Online (Sandbox Code Playgroud)
没错,它应该是/usr/include/opencv2,但现在是/usr/local/include/opencv2。所以我的项目仍然链接到Opencv3.1.0。我该如何纠正?谢谢
我猜你是用apt-get install来安装opencv的,如果我错了请告诉我。
首先显示 OpenCV_INCLUDE_DIRS 或 OpenCV_LIBS 等 opencvConfig.cmake 变量。
您可以使用此代码:
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})
Run Code Online (Sandbox Code Playgroud)
这些变量位于您的 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"
Run Code Online (Sandbox Code Playgroud)
但是,我会推荐一些提示:
由于您的静态目录路径,使用 cmake-gui 定义您的 OPENCV_DIR 目录。
不要用apt-get install openCV,有时候更新不够。
尝试编译 opencv 或下载预建文件http://opencv.org/downloads.html。
编译 opencv 并在您之前编译的构建目录中为您的应用项目设置您的 OPENCV_DIR。
干杯。
| 归档时间: |
|
| 查看次数: |
8676 次 |
| 最近记录: |