系列文章:
【CMake入门】第一节——CMake的安装与简单样例
【CMake入门】第二节——CMake常用指令介绍
构建单文件项目,调用第三方库
# CMake最低版本号要求
cmake_minimum_required(VERSION 2.8)# 项目名称
project(demo)# 设置编译方式
set( CMAKE_BUILD_TYPE Release)# 支持C++11
set( CMAKE_CXX_FLAGS "-std=c++11")# 查找系统里的OpenCV
# set(OpenCV_DIR "D:/Program Files/opencv-3.4.6/build")
find_package( OpenCV 3 REQUIRED)# 添加项目包含路径
include_directories( ${OpenCV_INCLUDE_DIRS} )# 用指定的源文件为工程添加可执行文件,名字为test
add_executable( test test.cpp )# 为库或可执行文件添加库连接(必须要在add_executable后面)
target_link_libraries( test ${OpenCV_LIBS} )
构建多文件项目,同时自己生成库
# CMake最低版本号要求
cmake_minimum_required(VERSION 2.8)# 项目名称
project(demo)# 设置编译方式
set( CMAKE_BUILD_TYPE Release)# 支持C++11
set( CMAKE_CXX_FLAGS "-std=c++11")# 查找系统里的OpenCV
find_package( OpenCV 3 REQUIRED)# 添加项目包含路径
include_directories( ${PROJECT_SOURCE_DIR}/include/ #工作空间下的include,同级目录有build、source文件夹${OpenCV_INCLUDE_DIRS} )
# message("PROJECT_SOURCE_DIR = " ${PROJECT_SOURCE_DIR})
# set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
# set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
# message("CMAKE_BINARY_DIR = " ${CMAKE_BINARY_DIR})
# message("CMAKE_SOURCE_DIR = " ${CMAKE_SOURCE_DIR}) # 将指定的源文件生成链接库文件。STATIC为静态链接库,SHARED为共享链接库
# 这个test.cpp是自己写的,里头有一堆函数,就是没有主函数。我们现在想让这个cpp文件变成一个库,方便我们调用里头的函数
add_library(lib_test ${PROJECT_SOURCE_DIR}/source/test.cpp)# 为上面自己生成的库或可执行文件添加库连接
target_link_libraries( lib_test${OpenCV_LIBS})# 用指定的源文件为工程添加可执行文件,名字为test
add_executable( ${PROJECT_NAME} ${PROJECT_SOURCE_DIR}/testBed/main.cpp )# 为库或可执行文件添加库连接(必须要在add_executable后面)
# 因为我们主函数调用了我们自己生成的库里头的函数,所以我们在这里同时添加了lib_test这个库的链接
target_link_libraries( ${PROJECT_NAME} ${OpenCV_LIBS}lib_test)