CMakeLists.txt自动添加cpp文件

news/2024/12/4 16:39:27/文章来源:https://www.cnblogs.com/coder-shane/p/18586635

问题描述

使用Clion编译器写C++时,一整个项目内仅只能包含一个main函数。当我们只是想练习C++语言时,想在在同一个项目里写多个样例,这时需要我们手动去配置CmakeLists.txt。每次都去配置会比较麻烦,因此希望有自动化脚本。当我们在同一个项目中添加新的源文件时,自动在CmakeLists.txt中创建一个可执行文件。

脚本源码

每次都将以下脚本添加在该项目内的CMakeLists.txt中即可。

cmake_minimum_required(VERSION 3.29)
project(your_project_name) # 需要更改为你的项目名set(CMAKE_CXX_STANDARD 20)# 遍历项目根目录下所有的 .cpp 文件。这种方法要求所有 cpp 文件命名不重复,不能含有中文,不能含有‘/’等字符!因为它就是直接 Copy 你的源码文件名的。
file(GLOB_RECURSE files *.cpp)
foreach (file ${files})string(REGEX REPLACE ".+/(.+)\\..*" "\\1" exe ${file}) # 通过正则表达式,选择.cpp的文件名add_executable(${exe} ${file}) # 添加可执行文件,${file}为源文件路径message(\ \ \ \ --\ src/${exe}.cpp\ will\ be\ compiled\ to\ bin/${exe}) # 终端打印添加信息
endforeach ()

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

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

相关文章

简单编写Makefile与使用make工具

简单编写Makefile与使用make工具 在不使用make工具下对c文件的编译 gcc main.c -o outgcc 《目标文件》 -o 《生成执行文件》编译main.c文件-->out.exe生成out.exe可执行文件 执行out.exe ./out.exe成功执行main编译结果PS: 在window下生成的可执行文件为后缀.exe文件windo…

sy

aHR0cHM6Ly9hcHAuc3V5aW53ZWFsdGguY29tL3N5bGMvcGFnZS9pbmRleC5odG1sI3BhZ2UvMTAvMTkvUDEwMTkuaHRtbD9wcmRDb2RlPUowMjM0Nw== 加密 开始两个debugger都可以使用“一律不在此处暂停过掉”跟栈,或者搜encrypt都可以找到加密位置 b就是请求数据 k是b生成H_TIME和H_NONCE(随机生成…

lua学习day2(懒狗随便记录)

其余的东西都大差不差,主要是我太懒了,写写pcall和xpcall吧pcall能获得调用方法、调用结果,xpcall同样也是可以的,但是里面包含了一个异常处理方法。pcall示例xpcall调用那就大致这。懒狗。。。。。。。

centos7+docker dock-compose使用

简介 Docker-Compose是Docker官方的开源项目,用于实现Docker容器集群的快速编排。 Compose简介 Compose是用于定义和运行多容器 Docker 应用程序的工具,通过Compose,可以使用YML文件来配置应用程序所需要的所有服务。然后,使用一个命令,就可以从YML文件配置中创建并启动所…

jjyh

aHR0cHM6Ly9tYmFuay5qamViYW5rLmNuL2pqY2NiV2ViL2luZGV4Lmh0bWwjL2ZpbmFuY2lhbE1hbmFnZS9saXN0P2ZpcnN0RmxhZz0zJnNlY29uZEZsYWc9JnNvcnRGbGFnPSZwcmRUeXBlRmxhZz0mY2xhc3NpZnlMaXN0VmFsdWU9JlBkQXJyYXlWYWx1ZT0mY2xhc3N0b3A9dHJ1ZQ== 包分析抓包看到的四个api的请求url皆为htt…

Net中RabbitMq.Client7.0通过依赖注入DI来管理RabbitMQ客户端的生命周期

在 RabbitMQ.Client 7.0.0 版本中, IModel 在 RabbitMQ.Client 7.0.0-alpha2 版本中已经被重命名,现在应该使用 IChannel 替代 IModel, IChannel 不再提供 CreateBasicProperties 方法。需要直接使用 BasicProperties 类来创建消息属性。 前言 关于RabbitMq的更多知识点在:…

论文泛读《PICCOLO : Exposing Complex Backdoors in NLP Transformer Models》

发表时间:2022 期刊会议:IEEE Symposium on Security and Privacy (SP) 论文单位:Purdue University 论文作者:Yingqi Liu, Guangyu Shen, Guanhong Tao, Shengwei An, Shiqing Ma, Xiangyu Zhang 方向分类:Backdoor Attack 论文链接 开源代码摘要 后门可以被注入到NLP模型…

数据库管理与开发基础教程复习(二)

Oraclec 常用工具 简单介绍: SQL*PLUS 由开始菜单启动和命令行启动 企业管理器 OEM Oracle 数据库集成管理平台 SOL PLUS常用命令 连接与断开数据库连接命令: -connect -disconnect 查看表结构命令: describe (desc) SOL*PLUS 环境参数设置命令 -set -arraysize -linesize -…

【Git基础】Gitee/GitHub使用

gitee介绍 gitee译为码云,是国内创建的一个类似与github的网站,可以上传自己的代码放在云端保存,下面介绍gitee如何使用,github类似使用操作。 git工具安装及基础 【git工具安装及基本使用】 gitee仓库创建.gitignore文件作用 git提交时需要忽略部分文件或目录本地仓库设置…

威联通-002 Docker镜像下载

@目录前言操作大纲1.登录阿里云镜像服务2.创建个人容器3.GitHub复制代码到本地库、配置信息4.点击修改自己想要拉取的镜像5.进入阿里云查看6.创建容器参考(可用)前言 由于国内几乎所有的docker库的封锁,现在不能进行docker镜像的拉取操作,尝试很多种方法都失败了,最后总结…

Mysql 一主一从配置

Mysql 一主一从配置 环境信息ip地址 主机信息 角色 mysql版本192.168.1.19 S600 主 8.0.40-0ubuntu0.20.04.1192.168.1.20 H840 从 8.0.40-0ubuntu0.20.04.1本环境已完成2台Mysql单机安装,Mysql单机安装操作文档 具体操作 Mysql主机配置 配置文件修改修改配置Master配置/etc/m…

Mycat2+Mysql一主一从实现读写分离配置

Mycat2+Mysql一主一从实现读写分离配置 前置配置Mysql一主一从搭建 Mycat2环境搭建环境信息ip地址 软件 角色 版本192.168.1.19 Mysql 主 8.0.40-0ubuntu0.20.04.1192.168.1.19 Mycat2 —— 1.21-release-3-14192.168.1.20 Mysql 从 8.0.40-0ubuntu0.20.04.1操作步骤 1. 修改并…