2016-06-08 157 views
3

我安裝了兩個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。 我該如何糾正它? 謝謝

+0

變量'OpenCV_LIBS'和'OpenCV_INCLUDE_DIRS'是什麼內容? – Tsyvarev

回答

2

我想你安裝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位於之前編譯的編譯目錄中。

乾杯。

+0

我從源代碼爲Opencv構建。這就是爲什麼我可以手動設置Opencv的安裝文件夾路徑。謝謝,我會嘗試你的建議。 – batuman