Windows下使用cmake 组织工程,编译静态库、动态库,导入第三方库,编译工程
1 使用主工程的CMakeLists.txt生成所有目标1.1 构建静态库并进行编译1.2 构建动态库并进行编译 2 将main.cpp外的其他文件作为子工程2.1 构建静态链接库并编译2.2 构建动态链接库并编译 3 首先将main.cpp外的其他文件编译为库,然后将其作为第三方库导入3.1 构建静态链接库并导入2.1.1 编译静态链接库3.1.2 导入编译的库并编译主工程 3.2 构建动态链接库并导入3.2.1 编译动态链接库3.2.2 导入编译的库并编译主工程目标:编译一个含有三个文件的工程,使用三种方法:
1、使用主工程的CMakeLists.txt生成所有目标
2、将main.cpp外的其他文件作为子工程
2、首先将main.cpp外的其他文件编译为库,然后将其作为第三方库导入
1 使用主工程的CMakeLists.txt生成所有目标
1.1 构建静态库并进行编译
工程结构:
CMakeLists.txt
cmake_minimum_required(VERSION 3.10.0)# 最低版本要求 cmake 构建工具小于3.10.0将报错project(main)# 工程项目名称set(MOD_MY_CALCULATION_PATH ${CMAKE_SOURCE_DIR}/my_calculation)# 设置一个变量标记路径# ${CMAKE_SOURCE_DIR} 这个取CMake自带宏里面的路径 就是这个CMakeLists.txt所在的路径aux_source_directory(${MOD_MY_CALCULATION_PATH} MOD_MY_CALCULATION_SRC)# ${} 固定的范式,取变量 MOD_MY_CALCULATION_PATH 里面的值,这里为 ${CMAKE_SOURCE_DIR}/my_calculation# MOD_MY_CALCULATION_SRC自定义的一个变量# 整条语句将对 ${CMAKE_SOURCE_DIR}/my_calculation 的源码*.cpp 和*.c 文件 输出到变量 MOD_MY_CALCULATION_SRCadd_library(my_calculation STATIC ${MOD_MY_CALCULATION_SRC}) # 构建静态库# 将所有的源文件归档成lib 这一句将会在build下生成lib# --------------上面的语句就已经能够生成静态库------------------aux_source_directory(${CMAKE_SOURCE_DIR} RP_ALL_SRC)# 这里对 ${CMAKE_SOURCE_DIR} 也就是当前CMakeList.txt 目录下的*.cpp输出到变量# RP_ALL_SRC (RP_ALL_SRC 意为顶层目录所有源码)add_executable(main ${RP_ALL_SRC})target_link_libraries(main my_calculation) #为生成目标添加编译的库(my_calculation) 可以是多个 比如 target_link_libraries(main lib1 lib2) #这里因为是在同一个CMakeLists.txt中 所以lib会被识别并找到,这里默认构建了其生成的依赖关系
my_calculation.h
#pragma onceint
如果觉得《Windows下使用cmake 组织工程 编译静态库 动态库 导入第三方库 编译工程》对你有帮助,请点赞、收藏,并留下你的观点哦!