CMakeLists.txt

源码结构

生成可执行程序

bash 复制代码
# CMake最小版本号
cmake_minimum_required(VERSION 3.15.0)

#增加-std=c++11
set(CMAKE_CXX_STANDARD 11)

#设置工程名称
project(calculate)

#[[
#方法一:添加源码文件
#aux_source_directory(< dir > < variable >)
#dir:要搜索的目录
#variable:将从dir目录下搜索到的源文件列表存储到该变量中
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_SUB)
aux_source_directory(${PROJECT_SOURCE_DIR} SRC_CUR)
]]


#方法二:添加源码文件
#CMAKE_CURRENT_SOURCE_DIR 表示指令 cmake 后跟随的路径
#PROJECT_SOURCE_DIR 表示工程目录
#file(GLOB/GLOB_RECURSE 变量名 要搜索的文件路径和文件类型)
file(GLOB SRC_SUB ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
file(GLOB SRC_CUR ${PROJECT_SOURCE_DIR}/*.cpp)


message(${SRC_SUB})


#合并源文件
# SET 指令的语法是:
# [] 中的参数为可选项, 如不需要可以不写
#set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])

set(SRC_LISTS ${SRC_SUB} ${SRC_CUR})

#包含头文件路径
include_directories(${PROJECT_SOURCE_DIR}/include)

#指定可执行程序输出的路径
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)

#add_executable(可执行程序名 源文件名称)
add_executable(main ${SRC_LISTS})

生成静态库

bash 复制代码
# CMake最小版本号
cmake_minimum_required(VERSION 3.15.0)

#增加-std=c++11
set(CMAKE_CXX_STANDARD 11)

#设置工程名称
project(calculate)

#[[
#方法一:添加源码文件
#aux_source_directory(< dir > < variable >)
#dir:要搜索的目录
#variable:将从dir目录下搜索到的源文件列表存储到该变量中
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_SUB)
aux_source_directory(${PROJECT_SOURCE_DIR} SRC_CUR)
]]


#方法二:添加源码文件
#CMAKE_CURRENT_SOURCE_DIR 表示指令 cmake 后跟随的路径
#PROJECT_SOURCE_DIR 表示工程目录
#file(GLOB/GLOB_RECURSE 变量名 要搜索的文件路径和文件类型)
file(GLOB SRC_SUB ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
file(GLOB SRC_CUR ${PROJECT_SOURCE_DIR}/*.cpp)


message(${SRC_SUB})


#合并源文件
# SET 指令的语法是:
# [] 中的参数为可选项, 如不需要可以不写
#set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])

set(SRC_LISTS ${SRC_SUB} ${SRC_CUR})

#包含头文件路径
include_directories(${PROJECT_SOURCE_DIR}/include)

#指定静态库输出的路径
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)

#add_library(库名称 STATIC 源文件1 [源文件2] ...) 
add_library(plus STATIC ${SRC_SUB}) 

生成动态库

bash 复制代码
# CMake最小版本号
cmake_minimum_required(VERSION 3.15.0)

#增加-std=c++11
set(CMAKE_CXX_STANDARD 11)

#设置工程名称
project(calculate)

#[[
#方法一:添加源码文件
#aux_source_directory(< dir > < variable >)
#dir:要搜索的目录
#variable:将从dir目录下搜索到的源文件列表存储到该变量中
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_SUB)
aux_source_directory(${PROJECT_SOURCE_DIR} SRC_CUR)
]]


#方法二:添加源码文件
#CMAKE_CURRENT_SOURCE_DIR 表示指令 cmake 后跟随的路径
#PROJECT_SOURCE_DIR 表示工程目录
#file(GLOB/GLOB_RECURSE 变量名 要搜索的文件路径和文件类型)
file(GLOB SRC_SUB ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
file(GLOB SRC_CUR ${PROJECT_SOURCE_DIR}/*.cpp)


message(${SRC_SUB})


#合并源文件
# SET 指令的语法是:
# [] 中的参数为可选项, 如不需要可以不写
#set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])

set(SRC_LISTS ${SRC_SUB} ${SRC_CUR})

#包含头文件路径
include_directories(${PROJECT_SOURCE_DIR}/include)

#指定动态库输出的路径
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)

#add_library(库名称 STATIC 源文件1 [源文件2] ...) 
add_library(plus SHARED ${SRC_SUB}) 

链接静态库生成可执行程序

bash 复制代码
# CMake最小版本号
cmake_minimum_required(VERSION 3.15.0)

#增加-std=c++11
set(CMAKE_CXX_STANDARD 11)

#设置工程名称
project(calculate)

#[[
#方法一:添加源码文件
#aux_source_directory(< dir > < variable >)
#dir:要搜索的目录
#variable:将从dir目录下搜索到的源文件列表存储到该变量中
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_SUB)
aux_source_directory(${PROJECT_SOURCE_DIR} SRC_CUR)
]]


#方法二:添加源码文件
#CMAKE_CURRENT_SOURCE_DIR 表示指令 cmake 后跟随的路径
#PROJECT_SOURCE_DIR 表示工程目录
#file(GLOB/GLOB_RECURSE 变量名 要搜索的文件路径和文件类型)
file(GLOB SRC_SUB ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
file(GLOB SRC_CUR ${PROJECT_SOURCE_DIR}/*.cpp)


message(${SRC_SUB})


#合并源文件
# SET 指令的语法是:
# [] 中的参数为可选项, 如不需要可以不写
#set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])

set(SRC_LISTS ${SRC_SUB} ${SRC_CUR})

#包含头文件路径
include_directories(${PROJECT_SOURCE_DIR}/include)

#指定可执行程序输出的路径
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)

#添加静态库路径
#link_directories(<lib path>)
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib)

#链接静态库
#link_libraries(<static lib> [<static lib>...])
#参数1:指定出要链接的静态库的名字
#可以是全名 libxxx.a
#也可以是掐头(lib)去尾(.a)之后的名字 xxx
#参数2-N:要链接的其它静态库的名字
link_libraries(plus)


#add_executable(可执行程序名 源文件名称)
add_executable(main ${SRC_CUR})

链接动态库生成可执行程序

bash 复制代码
# CMake最小版本号
cmake_minimum_required(VERSION 3.15.0)

#增加-std=c++11
set(CMAKE_CXX_STANDARD 11)

#设置工程名称
project(calculate)

#[[
#方法一:添加源码文件
#aux_source_directory(< dir > < variable >)
#dir:要搜索的目录
#variable:将从dir目录下搜索到的源文件列表存储到该变量中
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_SUB)
aux_source_directory(${PROJECT_SOURCE_DIR} SRC_CUR)
]]


#方法二:添加源码文件
#CMAKE_CURRENT_SOURCE_DIR 表示指令 cmake 后跟随的路径
#PROJECT_SOURCE_DIR 表示工程目录
#file(GLOB/GLOB_RECURSE 变量名 要搜索的文件路径和文件类型)
file(GLOB SRC_SUB ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
file(GLOB SRC_CUR ${PROJECT_SOURCE_DIR}/*.cpp)


message(${SRC_SUB})


#合并源文件
# SET 指令的语法是:
# [] 中的参数为可选项, 如不需要可以不写
#set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])

set(SRC_LISTS ${SRC_SUB} ${SRC_CUR})

#包含头文件路径
include_directories(${PROJECT_SOURCE_DIR}/include)

#指定可执行程序输出的路径
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)

#添加动态库路径
#link_directories(<lib path>)
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/lib)


#add_executable(可执行程序名 源文件名称)
add_executable(main ${SRC_CUR})

#链接动态库,注意此命令行,要放到目标文件的后边,保证目标文件已经存在,一般放在CMakeLists.txt文件的最后
#target_link_libraries(<target> <PRIVATE|PUBLIC|INTERFACE> <item>... [<PRIVATE|PUBLIC|INTERFACE> <item>...]...)
target_link_libraries(main PUBLIC plus)
相关推荐
举手17 分钟前
Epoll模型
linux·c++·学习
Escalating_xu41 分钟前
【Linux】基础 I/O 深度解析:FILE、文件描述符、open/read/write、重定向与缓冲区
java·linux·服务器
qetfw43 分钟前
Debian 部署 Discuz! 论坛:Nginx、PHP 与 MariaDB 配置
linux·运维·nginx·debian·php·discuz
烛之武1 小时前
Linux 命令速查表
linux·运维·服务器
小马同学-1 小时前
Keepaloved+LVS(DR) +MariaDN主主
linux·运维·lvs
进击的荆棘1 小时前
Linux系统——进程概念(上)
linux·运维·进程
深念Y1 小时前
Windows → WSL2 全面迁移:工具链、Docker、OpenCode
linux·运维·windows·docker·容器·环境·wsl
进击的荆棘1 小时前
Linux——基础开发工具(下)
linux·运维·服务器·linux工具
一池秋_1 小时前
云笔记本,刷linux,天翼云笔记本rk3568
linux·运维·电脑
ltl10 小时前
存储性能建模:IOPS、吞吐与延迟
linux