cmake教程 find_package


這里引用一篇博文
cmake教程
在看這篇博文前我整理了一些基礎知識,如果覺得可以請收藏

C_INCLUDE_PATH(for C header files)和CPLUS_INCLUDE_PATH(for C++ header files)的環境變量是指明頭文件的搜索路徑,此兩個環境變量指明的頭文件會在-I指定路徑之后,系統默認路徑之前進行搜索。
  • 1

cmake本身不提供任何搜索庫的便捷方法,所有搜索庫並給變量賦值的操作必須由cmake代碼完成.
include_directories
是用來提供找頭文件路徑的,打個比方,我現在想要#include"cv.h",但是這個cv.h的路徑是/usr/local/include/opencv,那么我總不能在主函數頭前寫#include “/usr/local/include/opencv/cv.h”吧,這個時候就用到include_directories了,它提供了一個搜索頭文件暫時的根目錄,即你可以在cmakelists中寫上include_directories(/usr/local/include)來讓庫文件搜索以/usr/local/include為基礎,即在main函數前寫上#include “opencv/cv.h"即可,


find_package(OpenCV 3 REQUIRED)
在這里插入圖片描述
也就是只要找到了*.CMAKE,我們就能夠給上圖底部的幾個變量賦路徑

最后,記得將找到的庫連接到我們的可執行文件上

target_link_libraries( imageBasics ${OpenCV_LIBS} )

cmake_minimum_required( VERSION 2.8 )//版本要求

project( imageBasics )//工程名

set( CMAKE_CXX_FLAGS "-std=c++11" )//添加c++ 11標准支持

find_package( OpenCV 3 REQUIRED )//尋找OpenCV.CMakeLists,以此找到包,並賦值各庫相關變量

include_directories( ${OpenCV_INCLUDE_DIRS} )//OpenCV_INCLUDE_DIRS是關於find_package的變量,
                                             //包含了一個路徑,這樣可以在代碼中的#include做根目錄
include_directories(/usr/local/include)//同上,找根目錄

add_executable( imageBasics test_transform2.cpp )//添加對主函數的可執行文件

target_link_libraries( imageBasics ${OpenCV_LIBS} )//鏈接OpenCV庫,OpenCV_LIBS為代表庫可執行文件的變量
                                                   //$為取出變量中的值

原文鏈接:link


免責聲明!

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



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