opencv3在CMakeLists.txt中的調用問題


在cmake工程中使用opencv需要在CMakeLists.txt文件中加以調用,在opencv2.xx版本,可以用以下語句

# 尋找OpenCV庫
find_package( OpenCV REQUIRED )
 
# 添加頭文件
include_directories(  ${OpenCV_INCLUDE_DIRS}  )

add_executable( xxx xxx.cpp )

# 鏈接OpenCV庫
target_link_libraries( xxx ${OpenCV_LIBS}  )

但如果你使用的是OpenCV 3.x版本,再用上面的方法就會報錯

CMake Warning at /home/zn/opencv-3.1.0/cmake/OpenCVConfig.cmake:166 (message):
  Found OpenCV Windows Pack but it has no binaries compatible with your
  configuration.

  You should manually point CMake variable OpenCV_DIR to your build of OpenCV
  library.
Call Stack (most recent call first):
  CMakeLists.txt:11 (find_package)


CMake Error at CMakeLists.txt:11 (find_package):
  Found package configuration file:

    /home/zn/opencv-3.1.0/cmake/OpenCVConfig.cmake

  but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be
  NOT FOUND.


-- Configuring incomplete, errors occurred!

從上面的報錯可以看出在OpenCVConfig.cmake文件中設置OpenCV_FOUND to FALSE,故find_package( OpenCV REQUIRED )是不可用的。我認為這是opencv3.x版本對opencv2.x版本的屏蔽,以防混用。要使用opencv3.x需要用如下語句

# 尋找OpenCV庫  我的版本的opencv3.1.0
find_package( OpenCV 3.1  REQUIRED ) 
 
# 添加頭文件
include_directories(  ${OpenCV_INCLUDE_DIRS}  )

add_executable( xxx xxx.cpp )

# 鏈接OpenCV庫
target_link_libraries( xxx ${OpenCV_LIBS}  )

也就是要加上opencv對應的版本號就可以解決報錯了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM