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)
相关推荐
来鸟 鸣间几秒前
Linux下3个so库之间的关系
linux·运维
释怀不想释怀17 分钟前
Linux文件上传(rz)和下载(sz)压缩(tar.gz)和解压(zip)
linux·运维·服务器
酉鬼女又兒31 分钟前
零基础入门Linux指南:每天一个Linux命令_sed
linux·运维·服务器
daad77735 分钟前
tcpdump_BPF
linux·测试工具·tcpdump
予枫的编程笔记38 分钟前
【Linux进阶篇】Linux网络配置+端口监听实战:ip/ss/iptables常用命令一次吃透
linux·iptables·网络配置·curl·端口监听·ping·ss命令
礼拜天没时间.1 小时前
深入Docker架构——C/S模式解析
linux·docker·容器·架构·centos
醉风塘1 小时前
Linux进程管理:深度解析ps -ef命令及其高级应用
linux·运维·服务器
不做无法实现的梦~1 小时前
PX4各个模块的作用(3)
linux·stm32·嵌入式硬件·机器人·自动驾驶
不爱缺氧i1 小时前
ubuntu离线安装mariadb
linux·ubuntu·mariadb
疯狂敲代码的老刘1 小时前
JDK 1.6到25 全版本网盘合集 (Windows + Mac + Linux)
java·linux·windows·macos·jdk