Cmake 自學筆記(linux)(六)
阿新 • • 發佈:2019-01-01
前言:前面的五節是對於cmake的入門內容,接下來繼續學習其他內容
引入:
前面我們在學習時,都是在自己寫標頭檔案和相關的庫,可當我們要使用第三方的庫時,我們就需要知道他的標頭檔案的路徑以及他的名字。然後加在我們的cmakelist中,我們之前寫的:
其中 ${PROJECT_SOURCE_DIR}/libhello 以及 target_link_libraries(hello libhello)中的libhello就是我們需要的引數。可是當我們不知道路徑和名字怎麼辦呢?這時候就需要使用cmake裡面的find_package來幫我們找這兩個引數。
具體細節
一. 比如我們需要一個名字為CURL的庫。就需要
find_package(CURL REQUIRED)
include_directories(${CURL_INCLUDE_DIR})
target_link_libraries(curltest ${CURL_LIBRARY})
2.執行完上面1中的那句話後,系統自動生成幾個引數,只需要我們去呼叫即可。其中之一就是CURL_INCLUDE_DIR,也就是 庫名字_INCLUDE_DIR,這就是路徑。第二個引數就是CURL_LIBRARY,也就是庫名字_LIBRARY,這就是他的名字。
3.注意要使用${}.
二. 我們也可以用下面的方法:
find_package(CURL)
if(CURL_FOUND)
include_directories(${CURL_INCLUDE_DIR})
target_link_libraries(curltest ${CURL_LIBRARY})
else(CURL_FOUND)
message(FATAL_ERROR "curl not found!")
endif(CURL_FOUND)
這裡面就用到了第三引數 CURL_FOUND ,也就是庫名字_FOUND