Clion项目中运行多个main函数

被clion默认不支持多main函数问题困扰许久, 今天终于彻底解决, 做个记录也希望能帮到有类似问题的朋友。
为什么会有这个问题
首先我们来看cmakelist这个文件
在这里插入图片描述
前三行是自动生成的项目的一些信息, 我们要看的就是add_executable这一句
它的形式类似于

add_executable(projectName file1.h file1.c·······)

第一个是项目名, 其它的都是头文件和源文件的文件名. 问题就出在这里, 一个项目中只需要一个main函数就够了, 其它的都可以看作是为main函数写的库, add_executable就是编译括号里面出现的所有的文件并以此创建一个exe文件. 所以被添加进add_executable中的全部文件中只能出现一个main函数.
完美的解决方案
那如何运行多个main函数呢?
我们在用dev这样的工具时会发现它为每一个cpp文件都创建了exe文件, 所以我们要做的事其实就是想办法为每一个cpp文件都创建exe文件.
比如有两个文件main1.cpp, main2.cpp

add_executable(path1 main1.cpp)
add_executable(path2 main2.cpp)

这样它就有两条编译路径了, 此时main1和main2都可以单独编译并生成exe文件
但这样我们每次新建文件都要去配置文件里面加上这么一句, 未免太麻烦了
这时可以用cmakelist的语法来完成自动化

cmake_minimum_required(VERSION 3.21)
project(C__Workplace)
set(CMAKE_CXX_STANDARD 14)#前三行不用改

#递归遍历所有的cpp文件
file (GLOB_RECURSE files *.cpp)

#将所有的cpp文件单独生成可执行文件
foreach (file ${files})
    string(REGEX REPLACE ".+/(.+)\\..*" "\\1" exe ${file})
    add_executable (${exe} ${file})
    message (\ \ \ \ --\ src/${exe}.cpp\ will\ be\ compiled\ to\ bin/${exe})
endforeach ()

记得要开启cmakelist的自动更新, 以及在新建文件时取消勾选"Add to targets"(意思是将这个文件添加到当前编译路径中)(非常重要).
还有每次新建文件后, 要在项目文件栏右键选择reload project,重新自动生成cmakelist文件
至此Clion就被我们从一个专业的项目开发工具改造成了一个即写即用的脚本撰写工具, 非常适合只是拿c++来刷题的人.

  • 26
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
c 环境配置 colin 主要包括三个步骤:安装编译器、配置环境变量和测试编译器。 首先,安装编译器。在安装 c 环境之前,我们需要先下载对应的编译器软件。常用的 c 编译器有 gcc、clang、MSVC 等。根据个人需求选择适合自己的编译器,并下载对应的安装包。然后,按照安装向导进行安装即可。安装完成后,我们就拥有了一个可用的 c 编译器。 接下来,配置环境变量。环境变量的配置可以使得我们在任意目录下都能够直接使用 c 编译器。首先,找到我们安装的编译器安装目录。然后,将该目录添加到系统的环境变量。具体的配置步骤可以根据操作系统的不同而有所差异,但一般都是在控制面板或者系统设置找到“环境变量”选项,然后添加编译器安装目录到系统的“PATH”变量。配置完成后,我们就可以在任意目录下打开命令行终端,输入编译器命令来编译和运行 c 程序。 最后,测试编译器。经过以上两个步骤的配置,我们就可以测试我们的 c 编译器是否正常工作了。在任意目录下新建一个文本文件,将其后缀改为“.c”,比如“test.c”。然后,用任意文本编辑器打开该文件,输入一段简单的 c 代码,比如“#include <stdio.h> int main(){ printf("Hello, world!"); return 0; }”。保存文件后,回到命令行终端,进入该文件所在的目录,输入编译命令,如“gcc test.c -o test”,然后按回车键进行编译。如果没有出现错误信息,说明我们的 c 编译器已经成功配置。 综上所述,通过安装编译器、配置环境变量和测试编译器三个步骤,我们可以完成 c 环境的配置,从而能够顺利编译和运行 c 程序。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值