CMake中的字符串操作

如果使用set进行字符串拼接,对应的命令格式如下:

set(变量名1 ${变量名1} ${变量名2} ...)

关于上面的命令其实就是将从第二个参数开始往后所有的字符串进行拼接,最后将结果存储到第一个参数中,如果第一个参数中原来有数据会对原数据就行覆盖。

使用list拼接:

list(APPEND <list> [<element> ...])

list命令的功能比set要强大,字符串拼接只是它的其中一个功能,所以需要在它第一个参数的位置指定出我们要做的操作,APPEND表示进行数据追加,后边的参数和set就一样了。

在CMake中,使用set命令可以创建一个list。一个在list内部是一个由分号;分割的一组字符串。例如,set(var a b c d e)命令将会创建一个list:a;b;c;d;e,但是最终打印变量值的时候得到的是abcde。

 

set(tmp1 a;b;c;d;e)
set(tmp2 a b c d e)
message(${tmp1})
message(${tmp2})

输出结果为:

abcde
abcde

使用list移除字符串:

list(REMOVE_ITEM <list> <value> [<value> ...])

 下面代码是综合起来的代码:

cmake_minimum_required(VERSION 3.5.1)
project(test)
file(GLOB SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
message(==================)
message(${SRC})
#删除时记得指定路径
list(REMOVE_ITEM SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp)
message(==================)
message(${SRC})
message(==================)
set(CMAKE_CXX_STANDARD 11)
include_directories(${PROJECT_SOURCE_DIR}/include)
add_library(calc STATIC ${SRC})
set(tmp hello world)
set(tmp1 ${tmp} ${SRC})
message(${tmp})
message(${tmp1})
list(APPEND tmp "111sss" "222xxx" ${SRC})
message(${tmp})

输出结果为: 

 

 

 

 

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

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

相关文章

机器自主程度越高人机融合可能会越难

智能算法是指利用人工智能技术来处理和解决问题的算法。这些算法通过模仿人类的思维和学习过程&#xff0c;可以自动从数据中提取知识、推断和决策。尽管智能算法的智能程度可能存在不同的层次&#xff0c;但它们都具有一定的智能特征&#xff0c;并能够完成一些复杂的任务。如…

如何应对网站攻击?F5聚焦网站安全防护

有关数据表明&#xff0c;2023以来全球累计超过1400多万个网站遭受了超过10亿次的网络攻击&#xff0c;几乎每个网站都面临风险。无论是电商、论坛还是官方的平台都不可避免遭遇攻击&#xff0c;黑客则利用网络服务的中断期间从事窃取信息等非法活动。在多种攻击手段中&#xf…

计算机基础知识50

数据的增删改查(insert update delete select) # 用户列表的展示&#xff1a; # 把数据表中得用户数据都给查询出来展示在页面上 1. 查询 from app01 import models models.UserInfo.objects.all() # 查询所有的字段信息和数据 resmodels.UserInfo.objects.first() # 查询…

Arcgis打开报错error code=-15

Provide your license server administrator with the following information: Error Code -15 问题描述 原因 长时间闲置后&#xff0c;license server administrator会关闭服务。再次打开之后会出现这个报错 解决方案 重启或者按下述做法&#xff1a; 打开任务管理器&am…

一文2000字从0到1使用压测神器JMeter进行压力测试!

概 述 Apache JMeter 是 Apache组织开发的基于 Java的压力测试工具。用于对软件做压力测试&#xff0c;它最初被设计用于 Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库&#xff0c; FTP 服…

CC1310F128RSMR Sub-1GHz超低功耗无线微控制器芯片

CC1310F128RSMR QFN-32 Sub-1GHz超低功耗无线微控制器 CC1310F128RSMR是一款低成本、 超低功耗、Sub-1 GHz射频器件&#xff0c;它是Simplel ink微控制器(MCU)平台的一部分。该平台由Wi- Fi组成、蓝牙低功耗&#xff0c;Sub-1 GHz&#xff0c;以太网&#xff0c;Zigbee线程和主…

【诺依管理系统-vue3】组件没有重新请求问题

解决方法&#xff1a;destroy-on-close&#xff0c;如图

消息队列中的事务是什么呢?

消息队列中的事务是什么呢&#xff1f; 说到事务&#xff0c;肯定会优先想到数据库中的事务。在数据库中需要事务&#xff0c;是为了保证数据的一致性、完整性、持久性和隔离性。它可以将数据库中的一组操作合并为一个不可分割的工作单元&#xff0c;要么全部执行成功&#xf…

No191.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

千年密码新解读,DeepMind 开发 Ithaca 破译希腊铭文

铭文、碑刻是过去文明的思想、文化和语言的体现。金石学家破译千年前的密码&#xff0c;需要完成文本修复、时间归因和地域归因三大任务。 主流的研究方式是「字符串匹配」&#xff0c;即凭借记忆或查询语料库匹配字型相似的铭文&#xff0c;这导致了结果的混淆和误判。 为此…

酷柚易汛ERP - 其他出库单操作指南

1、应用场景 处理其他非销售类型的出库单据&#xff0c;比如内部领用福利、赔偿、借出、领用材料、以货抵债等不参与销售管理的出库类业务。 2、主要操作 2.1 新增其他出库单 打开【仓库】-【其他出库单】&#xff0c;新增单据 出库单位成本及出库成本不能录入&#xff1b;…

msvcr71.dll丢失多种解决方法解析,全方位解读msvcr71.dll文件

在日常使用电脑时&#xff0c;你是否曾遇到过“msvcr71.dll文件丢失”的错误提示&#xff1f;别着急&#xff0c;本文将为你详细介绍msvcr71.dll丢失的解决方法&#xff0c;让你迅速解决这一烦恼。 一.多种msvcr71.dll丢失解决方法 修复方法一:重新安装相应软件 首先&#xf…

推荐一份适合所有人做的副业,尤其是程序员。

我建议每个人都去尝试一下网上接单&#xff0c;这是一个门槛低、类型多样的方式&#xff0c;尤其适合程序员&#xff01; 在接单平台上&#xff0c;你可以看到各种类型的兼职。以freelancer为例&#xff0c;你可以在这里找到技术、设计、写作等类型的兼职&#xff0c;只要发挥…

Linux SSH免密登录

目录 简介 创建Linux用户和用户组 配置LINUX静态IP 编辑IP映射 SSH免密登录配置 登录测试 简介 SSH&#xff08;Secure shell&#xff09;是可以在应用程序中提供安全通信的一个协议&#xff0c;通过SSH可以安全地进行网络数据传输&#xff0c;它的主要原理是利用非对称加密…

常见光模块的封装有哪些呢?

光模块的封装&#xff0c;保障了光通信的稳定和可靠性。本文介绍几种常见的光模块的封装类型。 19封装–焊接型光模块&#xff0c;一般速度不高于千兆&#xff0c;多采用SC接口。 SFP封装&#xff1a;SFP&#xff08;Small form-factor pluggable&#xff09;意思是小型可拔插…

金蝶云星空将子窗体的内容传回到父窗体的开发实现

文章目录 金蝶云星空将子窗体的内容传回到父窗体的开发实现前置任务父窗体打开子窗体时传入回调函数子窗体设置返回参数父窗体接收参数在回调函数根据参数做一些逻辑处理 金蝶云星空将子窗体的内容传回到父窗体的开发实现 前置任务 金蝶云星空表单插件实现父窗体打开子窗体&a…

合合信息亮相新加坡科技周——Big Data AI World Expo展示AI驱动文档数字化的前沿能力

展会规模背景&#xff1a; 2023年10月11日-12日&#xff0c;合合信息在TECH WEEK SINGAPORE&#xff08;新加坡科技周&#xff09;亮相&#xff0c;并在人工智能世界博览会&#xff08;Big Data & AI World&#xff09;展示合合信息核心人工智能文字识别技术能力。合合信息…

无人机航迹规划:五种最新智能优化算法(KOA、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法&#xff08;KOA、COA、LSO、GRO、LO&#xff09;简介 1、开普勒优化算法KOA 开普勒优化算法&#xff08;Kepler optimization algorithm&#xff0c;KOA&#xff09;由Mohamed Abdel-Basset等人于2023年提出。五种最新优化算法&#xff08;SWO、ZOA、EVO、KOA、…

上传文件大小限制报错

做了一个上传文件的功能&#xff0c;前端通过文件流程的形式调用后台接口。几百k的文件能成功&#xff0c;几M的文件会失败。原因有二 第一是被nginx限制&#xff0c;请求也无法转发到应用服务器里面&#xff08;也就是tomcat看不到请求日志只有nginx日志能看到请求&#xff0…

设计模式之建造者(Builder)

用来构建复杂对象 分离复杂对象的构建和表示 同样的构建过程可以创建不同的表示 当有一个复杂的对象&#xff0c;构建它的时候&#xff0c;比较复杂 例如&#xff0c;构建一个对象&#xff0c;要传入50个参数&#xff0c;可以先构建part1&#xff0c;再构建part2…最后调用bu…