[编译环境][CMake]示例

CMakeLists.txt

# 所需CMake的最小版本。
cmake_minimum_required(VERSION 3.22)

# 显示编译命令。
set(CMAKE_VERBOSE_MAKEFILE OFF)

# 设置项目的名称,并将其存储在变量PROJECT_NAME中。
project(CMakeDemo)

# 设置C编译器遵循的标准。
set(CMAKE_C_STANDARD 17)
# 设置是否打开GNU C扩展。
set(CMAKE_C_EXTENSIONS ON)
# 设置C++编译器遵循的标准。
set(CMAKE_CXX_STANDARD 23)
# 设置是否打开GNU C++扩展。
set(CMAKE_CXX_EXTENSIONS ON)

# 设置包含目录。
include_directories(include)
# 设置程序的输出路径。
#	PROJECT_SOURCE_DIR -- CMake内置变量之一,它代表当前项目根目录的路径。
#		当使用project命令指定项目名称时,CMake会自动设置PROJECT_SOURCE_DIR的默认值为项目根目录的路径(CMakeLists.txt所在的路径)。
#		如果你使用的是子目录CMakeLists.txt,那么PROJECT_SOURCE_DIR将会是子目录的路径。
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
# 设置库的输出路径。
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

# 搜索第三方工具pkg-config。
#	REQUIRED -- 如果找不到,则报错并停止生成。
find_package(PkgConfig REQUIRED)
# 通过pkg-config搜索fmt库。
#	REQUIRED -- 如果找不到,则报错并停止生成。
#	IMPORTED_TARGET -- 创建一个名为'PkgConfig::fmt'的导入目标,该目标可以作为参数直接传递给target_link_libraries()。
pkg_search_module(fmt REQUIRED IMPORTED_TARGET fmt)

# 添加子目录
add_subdirectory(lib)
add_subdirectory(src)

lib/CMakeLists.txt

project(tool)

# 生成库
# 库的类型可以为
#	STATIC -- 静态库
#	SHARED -- 动态库
#	MODULE -- 模块库
add_library(${PROJECT_NAME} SHARED
	Math.cpp
)

src/CMakeLists.txt

project(CMakeDemo)

# 生成程序
add_executable(${PROJECT_NAME} main.cpp)
# 指定链接给定目标和/或其依赖项时要使用的库或标志。
target_link_libraries(${PROJECT_NAME} PRIVATE
	tool
	PkgConfig::fmt
)

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

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

相关文章

【算法与数据结构】491、LeetCode递增子序列

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题和【算法与数据结构】78、90、LeetCode子集I, II中90.子集II问题有些类似,…

车载测试和软件测试有什么区别

车载测试和软件测试都是在汽车电子系统中进行的测试工作,但是它们之间有一些不同之处。 1. 测试对象不同:车载测试是在汽车电子系统中进行的测试工作,测试对象是整个车辆上的各种部件和系统的集成。而软件测试是针对汽车电子系统中的软件程序…

前端框架图谱

以上图谱基于个人经验总结,比如小程序、第三方平台等未在其中有所体现

【学习辅助】Axure手机时间管理APP原型,告别手机控番茄任务模板

作品概况 页面数量:共 30 页 兼容软件:Axure RP 9/10,不支持低版本 应用领域:时间管理、系统工具 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本品为「手机时间管理」APP原型,…

Django——路由层

一. 路由匹配 1. 路由匹配注意事项 urlpatterns [url(r^admin/, admin.site.urls),# 首页url(r^$,views.home),# 路由匹配url(r^test/$,views.test),url(r^testadd/$,views.testadd),# 尾页(了解): 后期使用异常捕获处理, 这样的尾页让django的第二次在路径中斜杠APPEND_SL…

【深度学习实验】网络优化与正则化(三):随机梯度下降的改进——Adam算法详解(Adam≈梯度方向优化Momentum+自适应学习率RMSprop)

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. 随机梯度下降SGD算法a. PyTorch中的SGD优化器b. 使用SGD优化器的前馈神经网络 2.随机梯度下降的改进方法a. 学习率调整b. 梯度估计修正 3. 梯度估计修正:动量法Momen…

excel中通过ROW函数返回引用的行号

例如,想引用B3的行号(行号应该是3): 鼠标点在想输入函数的单元格: 插入-》函数: 选择ROW函数: 点击“继续”,然后点击红框圈出来的按钮: 鼠标点击B3单元格&…

thinkphp8 多级控制器调用

在使用这个目录的时候正常访问时 http://tp.com/index.php/user2.login/index, 这个多级目录时不允许使用的,想要使用就的使用路由 在route/app.php 里面配置:Route::get(user2/login,user2.Login/index); 第一个参数时外部访问参数,第二个是…

AD教程 (十四)常见IC类封装的创建

AD教程 (十四)常见IC类封装的创建 新建IC类PCB封装,并双击命名 放置焊盘,从datasheet上找到对应焊盘大小 如下图,焊盘宽度为b,就是0.51mm,焊盘长度为(E1-E)/2&#xff0…

VB.net TCP服务端监听端口接收客户端RFID网络读卡器上传的读卡数据

本 示例使用设备介绍:WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) Imports System.Threading Imports System.Net Imports System.Net.Sockets Public Class Form1Dim ListenSocket As SocketDim Dict As New Dictionary(Of…

ultrascale+mpsoc系列的ZYNQ中DDR4参数设置说明

ultrascalempsoc系列的ZYNQ中DDR4参数设置说明 标题1 概述标题2 讲述平台标题3 ZYNQ的DDR设置界面参数标题4 DDR参数界面说明如下 标题1 概述 本文用于讲诉ultrascalempsoc系列中的ZYNQ的DDR4的参数设置与实际硬件中的DDR选型之间的关系,为FPGA设计人员探明道路。 …

云汇优想:抖音矩阵系统有哪些类型?

抖音作为中国最热门的短视频分享平台之一,不断推陈出新,在内容管理和展示方面也进行了创新。其中,抖音矩阵系统是一项重要的功能,它提供了多种类型的矩阵,帮助用户更好地管理和展示自己的内容。那么,抖音矩…

2011年11月10日 Go生态洞察:Go语言两周年纪念

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Outlook如何恢复已删除邮件

Outlook如何恢复已删除邮件 操作指引: Outlook客户端恢复最近7天删除的邮件: Outlook客户端要求最新版本,如没有如下选项,建议联机更新windows update 网页邮箱恢复最近7天删除的邮件:

Docker的安装配置与使用

1、docker安装与启动 首先你要保证虚拟机所在的盘要有至少20G的空间,因为docker开容器很吃空间的,其次是已经安装了yum依赖 yum install -y epel-release yum install docker-io # 安装docker配置文件 /etc/sysconfig/docker chkconfig docker on # 加…

NC65 客户、供应商、人员等基本信息校验唯一性规则的设置

NC65 客户、供应商、人员等基本信息校验唯一性规则的设置 供应商名称唯一校验,很容易导致重名的无法保存,那如何设置得如下图提示的按名称基本分类纳税人登记号等校验规则呢? 答:使用 admin 账号登录,然后在基础数据…

【unity2021.3.6f】运行官方 Vuforia Hololens 2 Sample 教程

文章目录 前言一、创建unity项目二、导入unity1.添加到我的资源2.在package Manage 里面去找到,点击下载,下载完成后点击Import 如下图:3.导入途中会有窗口弹出 很多提示,都点击默认选项:Import 、Install/Upgrade 等 …

首发!文心一言插件精品课,共创大模型应用新范式

“AI原生应用要能解决过去解决不了、解决不好的问题,应用才是大模型存在的意义。 ”越来越多人用AI打造自己的生产力工具、专业领域行业助手、游戏娱乐影音大师……你是否跃跃欲试却无从下手?机会来了! 《文心一言插件开发课》震撼来袭&#…

keras转onnx,TensorFlow转tf.keras.models.load_model,onnx精度转换

参考: https://blog.csdn.net/Deaohst/article/details/126864267 转onnx 别直接转onnx。 先转PB: import tensorflow as tfmodel_path ./models/model.h5 # 模型文件 model tf.keras.models.load_model(model_path) model.sa…

域名及网络地址

域名系统 可以通过 ping 命令查看域名对应的 IP 地址。 查看本机的默认 DNS 域名服务器地址可以使用 nslookup 命令。 IP地址和域名之间的转换 程序中有必要使用域名是很有必要的,系统随时可能会因为各种原因导致 IP 地址变更。而域名则比 IP 地址稳定得多&#…
最新文章