CMakeLists.txt

源码结构

生成可执行程序

# 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})

生成静态库

# 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}) 

生成动态库

# 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}) 

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

# 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})



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

# 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/271563.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法学习系列(十二):区间合并

目录 引言一、题目描述二、解题思路三、代码实现四、测试 引言 这个区间合并顾名思义就是把区间给合并起来&#xff0c;所以说也就只有这一种题型&#xff0c;然后这个一般面试或者笔试可能会考&#xff0c;所以说总结一下还是好的&#xff0c;那就开始吧。 一、题目描述 给…

数据智慧:C#中编程实现自定义计算的Excel数据透视表

前言 数据透视表&#xff08;Pivot Table&#xff09;是一种数据分析工具&#xff0c;通常用于对大量数据进行汇总、分析和展示。它可以帮助用户从原始数据中提取关键信息、发现模式和趋势&#xff0c;并以可视化的方式呈现。 在数据透视表中&#xff0c;数据分析师通常希望进…

如何查看NX UI对话框内的控件(使用UIFW侦查)

一、概述 在NX二次开发中有很多命令从界面上看起开相似&#xff0c;但实质确不同&#xff0c;个人人为一是出于对软件产权的保护&#xff0c;增加二次开发的难度&#xff0c;二是由于NX在不断地发展和版本交替中为了保留老用户的操作习惯&#xff0c;故意用新控件做成老控件的…

Linux OpenEuler(欧拉系统)无公网ip实现SSH远程连接

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;…

树莓派,mediapipe,Picamera2利用舵机云台追踪人手(PID控制)

一、项目目标 追踪人手大拇指指尖&#xff1a; 当人手移动时&#xff0c;摄像头通过控制两个伺服电机&#xff08;分别是偏航和俯仰&#xff09;把大拇指指尖放到视界的中心位置&#xff0c;本文采用了PID控制伺服电机 Mediapipe Hand简介 MediaPipe 手部标志任务可检测图像…

基于机器学习算法的数据分析师薪资预测模型优化研究(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

C++红黑树

C红黑树 一.红黑树的概念和性质1.红黑树的概念和性质2.AVL树和红黑树的区别 二.我们要实现的大致框架1.红黑树节点的定义2.为什么新节点默认是红色?1.共识2.新节点是黑色的坏处3.新节点是红色的好处 三.红黑树的插入1.插入逻辑跟BST相同的那一部分2.分类讨论插入逻辑1.新插入节…

如何进行快照管理

目录 快照管理 手动创建快照 自动创建快照 快照管理 快照管理 传统的物理服务器&#xff0c;为了确保服务器中数据的安全&#xff0c;需要你自行定制备份策略&#xff0c;如果备份到服务器本地&#xff0c;如果存储损坏&#xff0c;备份会同正常数据一起丢失。也就是说需要…

Mybatis3系列课程-ResultMap

简介 MyBatis3 的 resultMap 是一个配置元素&#xff08;configuration element&#xff09;&#xff0c;用来声明一个自定义查询结果映射。在 MyBatis3 中&#xff0c;有三种类型的 resultMap&#xff1a;resultMap、association 和 collection。每个 resultMap 有一个唯一的标…

【AI】阿里云免费GPU服务资源领取方法

首先&#xff0c;直接点击链接&#xff1a;阿里云免费试用 也可以复制链接到浏览器进行跳转&#xff1a;https://free.aliyun.com?userCodernbj0c1o 页面如下所示&#xff1a;这里的免费试用期限是3个月&#xff0c;给的资源点够我们试用V100 16G显存服务器300个小时&#xff…

AI模型私人订制

使用AI可以把你的脸换成明星的脸&#xff0c;可以用于直播、录播。 ai换脸 也可以把视频中明星的脸换成你的脸 1074 之所以能够替换成功&#xff0c;是因为我们有一个AI人物模型&#xff0c;AI驱动这个模型就可以在录制视频的时候替换指定人物的脸。AI模型从哪里来&#xf…

超分任务中的转置卷积、pixelshuffle 和插值上采样

前言 超分任务中&#xff0c;有两种上采用的方式&#xff1a; 先插值上采样&#xff0c;再进行卷积操作&#xff1b;先卷积操作&#xff0c;再插值上采样。 一般随着训练的推进&#xff0c;2方法会比1方法获取更加高频且准确的信息&#xff0c;而且2方法比1方法计算开销小。下…

轻松设置CentOS IP地址的最终指南:详细的分步说明

轻松设置CentOS IP地址的最终指南 一、引言二、准备工作三、手动设置IP地址四、自动分配IP地址(DHCP)五、使用网络管理工具设置IP地址5.1、使用nmtui工具进行图形化设置5.2、使用nmcli命令行工具进行设置 六、常见问题和解决方案七、总结 一、引言 CentOS操作系统是一种基于Li…

【Linux】磁盘分区管理及挂载/永久挂载管理

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

TypeScript学习(基础篇)

前言 在现代的Web开发生态系统中&#xff0c;JavaScript已经成为一种必备的技术。然而&#xff0c;随着应用的增大&#xff0c;JavaScript的一些限制开始显现&#xff0c;例如缺乏静态类型检查和编译时错误检查。这正是TypeScript发挥作用的地方&#xff0c;TypeScript是一种静…

Editing Existing PDF Files in Java

Editing Existing PDF Files in Java 1. Overview In this article, we’ll see how to edit the content of an existing PDF file in Java. First, we’ll just add new content. Then, we’ll focus on removing or replacing some pre-existing content. 2. Adding the …

Ubuntu20.04-查看GPU的使用情况及输出详解

1. 查看GPU的使用情况 1.1 nvidia-smi # 直接在终端得到显卡的使用情况 # 不会自动刷新 nvidia-smi# 重定向到文件中 nvidia-smi > nvidia_smi_output.txt# 如果输出的内容部分是以省略号表示的&#xff0c;可以-q nvidia-smi -q 1.2 nvidia-smi -l # 会自动刷新&#x…

BED 文件格式 chip-seq m6a数据可视化会用到

General usage — bedtools 2.31.0 documentationhttps://bedtools.readthedocs.io/en/latest/content/general-usage.html BED格式&#xff08;Browser Extensible Data format&#xff09;是一种在生物信息学中广泛使用的文本文件格式&#xff0c;用于描述基因组上的特征和…

MySQL——表的内外连接

目录 一.内连接 二.外连接 1.左外连接 2.右外连接 一.内连接 表的连接分为内连和外连 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选&#xff0c;我们前面学习的查询都是内连接&#xff0c;也是在开发过程中使用的最多的连接查询。 语法&#xff1a; s…

音频信号处理电路芯片如何选型? --低噪声,高增益

随着智能手机、汽车音频、AI智能音箱&#xff0c;智能家居、家庭影院、平板电脑、笔记本电脑等智能设备的普及&#xff1b;数字音频功放芯片的应用也越来越广泛&#xff1b;同时对音频信号处理的芯片的性能要求越来越高&#xff1b;以下几款就是常用热门音频信号处理电路芯片分…