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)
相关推荐
壹号用户11 分钟前
初识linux
linux·运维·服务器
凡人叶枫31 分钟前
Effective C++ 条款02:宁可以编译器替换预处理器
java·linux·c语言·开发语言·c++
爱看老照片43 分钟前
linux上查看磁盘空间占用情况,清理大文件
linux·清理·大文件·磁盘空间
你是个什么橙1 小时前
Linux 远程桌面访问和管理——VNC服务器
linux·运维·服务器
nhfc991 小时前
whisper.cpp编译
linux·运维·服务器
载数而行5201 小时前
Linux 8 进程(树)相关指令
linux
ShineWinsu1 小时前
对于Linux:内核是如何组织管理IPC资源的解析
linux·服务器·c++·面试·笔试·线程·ipc
feng_you_ying_li2 小时前
Linux之线程同步:条件变量和两种生产消费模型
linux·运维·服务器
Dlrb12112 小时前
Linux系统编程-线程与多线程模块的封装
linux·线程·互斥锁·线程同步·线程互斥
拾贰_C2 小时前
【Ubuntu | VSCode | SSH | 远程连接 | Linux】VSCode 怎么实现ssh远程连接
linux·vscode·ubuntu