首页 > 其他分享 >CMakeLists.txt自动添加cpp文件

CMakeLists.txt自动添加cpp文件

时间:2024-12-04 16:43:05浏览次数:4  
标签:CMakeLists exe 添加 file cpp txt

问题描述

使用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 ()

标签:CMakeLists,exe,添加,file,cpp,txt
From: https://www.cnblogs.com/coder-shane/p/18586635

相关文章

  • Ardusub源码剖析——mode_guided.cpp
    代码#include"Sub.h"/**Initandruncallsforguidedflightmode*/#defineGUIDED_POSVEL_TIMEOUT_MS3000//guidedmode'sposition-velocitycontrollertimesoutafter3secondswithnonewupdates#defineGUIDED_ATTITUDE_TIMEOUT......
  • cpp 实验5
    1hpp2#pragmaonce3#include<iostream>4usingnamespacestd;5classMachinePets{6private:7stringnickname;8public:9MachinePets(conststring&s);10virtualstringtalk()const=0;11stringget_nickname()......
  • cpp智能指针
      普通指针的不足new和new[]的内存需要用delete和deletel]释放。程序员的主观失误,忘了或漏了释放。程序员也不确定何时释放。普通指针的释放类内的指针,在析构函数中释放。C++内置数据类型,如何释放?new出来的类,本身如何释放?C++11新增三个智能指针类型uniqu......
  • CComboBox的SelectString函数有弊端-m_combo_xxx_.SelectString(0, strTxt); 重复
    CComboBox的SelectString函数有弊端CComboBox中字符串通过AddString添加后,比如天气1、天气2、天气222,天气234 CComboBox调用SelectString(0,_T("天气2"))函数有弊端。可能会选择的是 天气222应该用for循环判断m_comBoText.GetWindowText(strText);if(strText==你要选择......
  • cpp智能指针
      普通指针的不足new和new[]的内存需要用delete和deletel]释放。程序员的主观失误,忘了或漏了释放。程序员也不确定何时释放。普通指针的释放类内的指针,在析构函数中释放。C++内置数据类型,如何释放?new出来的类,本身如何释放?C++11新增三个智能指针类型uniqu......
  • 100ASK_IMX6ULL-PRO 数码相框扩展项目:支持打开阅读 TXT 文件
    背景说明本篇内容基于百问网嵌入式Linux项目数码相框与文件浏览器和嵌入式Linux电子书阅读器需求:在文件浏览器界面中支持双击打开TXT类型文件,进入新界面进行文本阅读和翻页控制。实现思路说明浏览器界面中响应双击操作,识别TXT类型文件成功后进入阅读器界面。可参考项目中图片......
  • 用Python将多个txt文件合并到同一个excel中的不同sheet
    写在前面:以下代码只适用于具有同样格式的多个txt文件合并在同一个excel的不同sheet,对于将所有txt按同样的格式合并在同一个sheet的,以下代码不能实现。导入模块:importopenpyxlimportos基本信息配置:filePath=r'C:\Amy\new'#存放txt的文件夹的存......
  • cpp实验四
    1.实验任务11#include<iostream>23usingstd::cout;4usingstd::endl;56//类A的定义7classA{8public:9A(intx0,inty0);10voiddisplay()const;1112private:13intx,y;14};1516A::A(intx0,inty0):x{x0},y{y......
  • [20241123]PLSQL语句代码执行几次会缓存.txt
    [20241123]PLSQL语句代码执行几次会缓存.txt--//测试看看PLSQL语句代码执行几次会缓存。1.环境:SCOTT@book>@ver1PORT_STRING                   VERSION       BANNER-------------------------------------------------------------------------......
  • [20241123]测试软软解析遇到的疑惑3.txt
    [20241123]测试软软解析遇到的疑惑3.txt--//测试软软解析遇到的疑惑,就是大量软软解析以及分散执行两者的执行时间差别并不是很大,有点疑惑,发现调用select休眠的时间--//是1毫秒,而11g是1厘秒。而ash取样是1秒,这样在21c下相当于方法1000倍,11g下仅仅100倍。--//前面测试21c下的情况,在1......