当前位置: 首页 > news >正文

CLion运行多个main函数

文章目录

  • 前言
      • 第一种方案:添加多个 add_executable
      • 第二种方案:使用foreach (推荐)

前言

C/C++项目中,只允许有一个main函数,不方便进行单元测试,也不方便使用一个项目记录学习;但是cmake却可以解决这个问题;

默认情况下,CMakeLists.txt 只有一个 add_executable

cmake_minimum_required(VERSION 3.23)
project(untitled)set(CMAKE_CXX_STANDARD 14)add_executable(untitled main.cpp)

第一种方案:添加多个 add_executable

添加多个 add_executable确实能解决问题,但这些都需要自己手动添加,很不方便,而且第一个参数不能重复;如下

cmake_minimum_required(VERSION 3.23)
project(untitled)set(CMAKE_CXX_STANDARD 14)
# untitled 不能和其他的add_executable重复
add_executable(untitled main.cpp)
add_executable(untitled1 main1.cpp)
add_executable(untitled2 main2.cpp)

其中注意 GLOB files ,根据具体 cpp 文件路径修改,例如:

# 一层目录
file (GLOB files *.cpp)# 两层目录
file (GLOB files *.cpp */*.cpp)# 三层目录
file (GLOB files *.cpp */*.cpp */*/*.cpp)

第二种方案:使用foreach (推荐)

cmake_minimum_required(VERSION 3.23)
project(untitled)set(CMAKE_CXX_STANDARD 14)# 遍历项目根目录和子目录下所有的 .cpp 文件
file (GLOB files *.cpp */*.cpp)
foreach (file ${files})string(REGEX REPLACE ".+/(.+)/(.+)\\..*" "\\1-\\2" exe ${file})add_executable (${exe} ${file} )
endforeach ()add_executable(untitled main.cpp lesson_1_helloWorld.cpp lesson_2.cpp)
http://www.dtcms.com/a/303218.html

相关文章:

  • MySQL存储过程(二):存储过程实例(增删改查)及调用
  • Web3技术解析:从网络架构到业务创新的范式的变革
  • mysql全量备份、全量恢复demo
  • 二叉树基本概念
  • 安装anaconda后,如何进入python解释器
  • 禾纳AET3156AP数据手册,增强型p沟道MOSFET芯片,替代AO4805方案
  • C#_运算符重载 operator
  • 【办公类-109-01】20250728托小班新生挂牌(学号姓名)
  • 微服务的编程测评系统7-题库接口
  • windows平台计划任务批处理实现定时任务
  • 循环神经网络 中文情感分析案例
  • WAIC首日 | RWKV-7s 新型高效大模型架构正式亮相
  • django 按照外键排序
  • uvm_do sequence marcos
  • SQL之防止误删数据
  • Spring核心机制:深入理解控制反转(IoC)
  • Kotlin的datetime库
  • 荣耀应用市场《2025上半年应用合规治理报告》丨开发加油站
  • C# 静态类_静态方法_静态字段(static 声明静态的关键字 )
  • R语言与作物模型(DSSAT模型)技术应用
  • 未授权访问漏洞 总结
  • mysql 关于树形数据结构的一些操作
  • STM32中集成USB驱动
  • SQL 查询语法笔记
  • C语言笔记03 :关于指针的补充
  • 力扣面试150题--颠倒二进制位
  • 第18章 泛型 笔记
  • 第一第二章笔记整理
  • AutoGen - model_clients和model_context使用示例
  • Docker学习相关视频笔记(一)