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)
相关推荐
qyhua5 分钟前
【Linux运维实战】彻底修复 CVE-2011-5094 漏洞
linux·运维·安全
坠金12 分钟前
linux/centos迁移conda文件夹
linux·centos·conda
纳于大麓1 小时前
Kotlin基础语法
linux·windows·kotlin
九皇叔叔1 小时前
Linux Shell 正则表达式中的 POSIX 字符集:用法与实战
linux·运维·正则表达式
東雪蓮☆2 小时前
K8s 平滑升级
linux·运维·云原生·kubernetes
---学无止境---3 小时前
Linux中进程创建和缓存对象初始化fork_init、proc_caches_init和buffer_init
linux
qq_183802873 小时前
Linux内核idr数据结构使用
linux·运维·服务器
噜啦噜啦嘞好4 小时前
Linux:库制作与原理
linux·运维·服务器
---学无止境---4 小时前
Linux中将EFI从物理模式切换到虚拟模式efi_enter_virtual_mode函数的实现
linux
刘某的Cloud4 小时前
磁盘-IO
linux·运维·系统·磁盘io