CMake配置文件結構

CMake使用名爲CMakeLists.txt的配置文件,可以在其中定義編譯和依賴關係過程。

定義CMake最低版本

cmake_minimum_required(VERSION 3.0)

定義項目名稱,保存在PROJECT_NAME變量中

project(CMakeTest)

創建可執行命令,將源代碼編譯成名爲CMakeTest的可執行文件

add_executable(${PROJECT_NAME} main.cpp)

定義庫的源文件及名稱(生成共享庫.dll或靜態庫.lib)

add_library(Hello hello.cpp hello.h)
add_executable(executable main.cpp)

將可執行文件鏈接到所需庫

target_link_libraries(executable  hello)

根文件夾
在這裏插入圖片描述
添加子文件夾utils

add_subdirectory(utils)

utils文件夾中的CMakeLists.txt中,編寫一個將包含在主項目文件夾中的新庫在這裏插入圖片描述
允許主項目檢測所有頭文件

target_include_directories(Utils PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

CMake能夠搜索依賴項和外部庫.

# 編譯X64
set (CMAKE_EXE_LINKER_FLAGS  /machine:x64)
# 設置opencv 依賴包路徑
set (OpenCV_DIR  D:/opencv/build/x64/vc14/lib)
# FIND_PACKAGE 查找依賴項 所需最低版本 是必需還是可選 查找所有opencv子模
# 可指定要包含在項目中的子模塊 FIND_PACKAGE( OpenCV 4.0.0 REQUIRED core)
# Requires OpenCV
FIND_PACKAGE( OpenCV 4.0.0 REQUIRED )

# ${OpenCV_VERSION} 存儲OpenCV包版本的變量
MESSAGE("OpenCV version : ${OpenCV_VERSION}")
#向環境中添加指定庫的頭文件
include_directories(${OpenCV_INCLUDE_DIRS})
#向環境中添加指定庫的路徑
link_directories(${OpenCV_LIB_DIR})
ADD_EXECUTABLE( executable main.cpp )
# 將執行文件與OpenCV庫鏈接
TARGET_LINK_LIBRARIES( executable ${OpenCV_LIBS} )
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章