CLion运行多个main函数

发布时间:2023-03-11 22:21:09 作者:yexindonglai@163.com 阅读(992)

前言

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

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

  1. cmake_minimum_required(VERSION 3.23)
  2. project(untitled)
  3. set(CMAKE_CXX_STANDARD 14)
  4. add_executable(untitled main.cpp)

第一种方案:添加多个 add_executable

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

  1. cmake_minimum_required(VERSION 3.23)
  2. project(untitled)
  3. set(CMAKE_CXX_STANDARD 14)
  4. # untitled 不能和其他的add_executable重复
  5. add_executable(untitled main.cpp)
  6. add_executable(untitled1 main1.cpp)
  7. add_executable(untitled2 main2.cpp)

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

  1. # 一层目录
  2. file (GLOB files *.cpp)
  3. # 两层目录
  4. file (GLOB files *.cpp */*.cpp)
  5. # 三层目录
  6. file (GLOB files *.cpp */*.cpp */*/*.cpp)

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

  1. cmake_minimum_required(VERSION 3.23)
  2. project(untitled)
  3. set(CMAKE_CXX_STANDARD 14)
  4. # 遍历项目根目录和子目录下所有的 .cpp 文件
  5. file (GLOB files *.cpp */*.cpp)
  6. foreach (file ${files})
  7. string(REGEX REPLACE ".+/(.+)/(.+)\\..*" "\\1-\\2" exe ${file})
  8. add_executable (${exe} ${file} )
  9. endforeach ()
  10. add_executable(untitled main.cpp lesson_1_helloWorld.cpp lesson_2.cpp)

关键字c++

上一篇: linux sort命令使用教程

下一篇: c++转义字符