Cmake 实操 -- 使用文件操作命令添加源码文件并移除失效问题记录

news/2024/11/6 15:25:50/文章来源:https://www.cnblogs.com/fir-loading/p/18530243

搜索文件

使用file(GLOB_RECURSE fileList searchDir/*.cpp)搜索searchDir目录下所有cpp文件,将路径保存到fileList中。
GLOB_RECURSE:启用递归搜索。
ps:searchDir不会被展开,如果searchDir中存在C/test/../test1,保存到fileList中的文件路径将仍然带有C/test/../test1,而不是C/test1.

移除文件

list(REMOVE_ITEM fileList ${removeList})
使用上述命令可从fileList移除不需要的文件路径。
ps:该移除命令不对文件的实际路径做判断,只对fileList和removeList中保存的字符串做匹配。
即:

file(GLOB_RECURSE fileList C/test/../test1/*.cpp)
file(GLOB_RECURSE removeList C/test1/*.cpp)
list(REMOVE_ITEM fileList ${removeList})

假设test1下存在a.cpp,list(REMOVE_ITEM)将无法移除fileList 中的"C/test/../test1/a.cpp",因为removeList 中存放的是"C/test1/a.cpp"。

因此,同时使用file(GLOB_RECURSE )与list(REMOVE_ITEM) 是,建议先定义prefixDir作为根目录,在根目录向下以绝对路径的方式给出搜索路径。


REAL_PATH、RELATIVE_PATH

REAL_PATH、RELATIVE_PATH可分别将路径转换为绝对路径与相对路径,或可以一种更简洁的方法处理上述情形。
仅做记录,暂未尝试,后续补充。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

合宙低功耗4G模组HTTP网络协议应用

​一、HTTP概述 1.1 简介 HTTP是HyperTextTransferProtocol(超文本传输协议)的缩写。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说…

基于ESP32的桌面小屏幕实战[2]:硬件设计之充电管理

1. 硬件基础知识 1.1 原理图设计、PCB设计、PCB(电路板)、PCBA(电路板+元器件)分别长什么样?1.2 高低电平 一般可以理解为输出电压=VCC就是高电平,输出电压=GND(一般是0V)就是低电平,分别用1和0来表示,这个是理想值。 但实际上它也有一个范围,比如你的单片机供电压(…

jmeter 固定吞吐量定时器

使用:模拟18000 QPS查询 Hits Per SecondTPS :聚合报告: Target throughput(in samples per minute):目标吞吐量(单位分钟),即每分钟执行多少次(TPM)Calculate Throughput based on(计算吞吐量策略):1、This thread only:仅对当前线程,也就是每个线程相互是不干扰的,都…

VS引用本地的NuGet包

Step1.打包 先选择项目/类库,进行打包。在输出中,找到打包的目录和文件。 Step2.本地创建一个文件夹用于放打包文件。Step3.添加包源 打开 VS --> 工具 --> NuGet包管理器 --> 管理解决方案的NuGet程序包 选择右上方:程序包源右侧的齿轮按钮 在程序包源中,新增一…

cuda、cudnn、zlib 深度学习GPU必配三件套(Ubuntu)

跨大版本不推荐,到处是坑、坑、坑~。tensorrt10、cuda12、cudnn9是目前最新的大版本,但是对于一般的老显卡(1050等),太新可能提醒一些错误(主要是tensorrt太新导致的)。为了不折腾,使用如下版本:tensorrt8.6.1、cuda11.8、cudnn8.9.7 默认已经安装了英伟达显卡的最新版…

微信公众号音频下载器

微信公众号音频下载器我关注的一个大V,总是喜欢发布音频内容。 但是呢,由于众所周知的原因,这些内容往往被删除了,我就没法再听了。。。 于是,我想给他的音频保存下来。 虽然我可以自己搞定,但是毕竟没有现成的工具。于是,我发挥程序员的优势,自己动手写一个小工具。于…

北京-丰台-纪家庙

西域美食永照兰州拉面(❤❤❤)地址:丰台区南三环西路91号院1号楼1层107室 单人拉面套餐 ​ 招牌拉面 ​ 凉菜拼盘素 ​ 鸡蛋 ​ 价格:20R ​ 评价:拉面中规中矩,汤有点油,6分;凉菜爽口,不过也有点油,6分;煎蛋能吃出来不是剩的,7分;服务员主动给我提…

C++中调用C函数,会提示undefined reference to xxx,collect2: error: ld returned 1 exit status

在C++中调用C函数,即使头文件等都包含,编译后提示错误undefined reference to xxx,collect2: error: ld returned 1 exit status。这是因为C和C++编译过来中,函数的符号表示不一样。在c++中,为了支持重载机制,在编译生成的汇编码中,要对函数的名字进行一些处理,加入比如…

img 标签高度多了几个像素

因为img标签是行内标签自带间距,导致图片和div之间有间隙<div class="img-container"><img src="xxxxxxxxx" /> </div> <style lang=less> .img-container {width: 200px;font-size: 0; // 方法一img {display: block; // 方法二…

【教程】第一章:界面和安装介绍——初识 NocoBase

1.1 快速体验 首先,我们推荐你快速体验 NocoBase,了解它的强大功能。你可以在 在线 Demo 填写邮箱和相关信息,点击开通。即可收到为期 2 天的体验系统,包含全部商业插件:收到 NocoBase 官方邮件之后,可以先行探索,感受 NocoBase 的灵活强大。可以在体验系统中随意操作,…

idea的git提交显示异常改怎么处理

1、打开设置 2、将项目和其他的VSC改为Git

Burp Suite Professional 2024.10 for macOS x64 ARM64 - 领先的 Web 渗透测试软件

Burp Suite Professional 2024.10 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件Burp Suite Professional 2024.10 for macOS x64 & ARM64 - 领先的 Web 渗透测试软件 世界排名第一的 Web 渗透测试工具包 请访问原文链接:https://sysin.org/blog/burp-suite-pro-m…