【CMake入门】第三节——构建项目并调用或生成库

2023-12-13 19:59:47

系列文章:
【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
	)

文章来源:https://blog.csdn.net/PuddleRubbish/article/details/134843292
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。