如何在 clion 运行多个 main 函数(方法详解)
在写C++的题目的时候经常会遇到这样的问题,写了多个cpp文件,在clion中编译报错不能同时存在多main函数
这里写了一个小程序优雅地解决这个问,非常简单,就是就是读字符串写文件
直接修改一下CMake自动遍历文件即可
多个main函数的报错
在clion中写完一题,想写下一题,结果发现main函数不能运行
正确的解决方法
在牛客用户 AAnonymous 的告知下,借鉴了他的github上的 CMakeLists.txt,直接修改CMakeLists.txt即可,之前自己写了一个傻傻的方法。以我的Project的CMakeList.txt为例
cmake_minimum_required(VERSION3.15) project(JZ_offer) set(CMAKE_CXX_STANDARD14) #遍历项目根目录下所有的.cpp文件 file(GLOBfiles*.cpp) foreach(file${files}) string(REGEXREPLACE".+/(.+)\\..*""\\1"exe${file}) add_executable(${exe}${file}) message(\\\\--\src/${exe}.cpp\will\be\compiled\to\bin/${exe}) endforeach()
在新建对应的 xx.cpp 文件之后,创建 main 函数,在项目处右击,选择 ReloadCMakeProject
在重新加载完之后可以看到 main 函数前面出现了运行按钮,运行框列表也有了对应的运行选项
补充
博客底下有人问这种方法只能遍历根目录下的一层,如果根目录下还有文件夹,则里面的cpp文件没有被识别,查了一个有点旧的官方文档,有 GLOB_RECURSE 的方法,不过也试了一种自己的方法
#如果你只需要根目录下的test文件夹的所有.cpp文件 file(GLOBfilestest/*.cpp) #如果你只有两层目录的话 file(GLOBfiles*.cpp*/*.cpp) #同理,三层的话 file(GLOBfiles*.cpp*/*.cpp*/*/*.cpp) #官方提供了一种递归的方法 #这样在运行框会多一个CMakeCXXCompilerId,不过无伤大雅 file(GLOB_RECURSEfiles*.cpp)
还有人问如果我想在运行框显示 文件夹/文件名 应该怎么做,经过测试对于 / 应该是CMAKE中使用的符号,不能在其中使用,\\1 和 \\2 之间可以用 . 和 -
string(REGEXREPLACE".+/(.+)/(.+)\\..*""\\1-\\2"exe${file})
到此这篇关于如何在clion运行多个main函数(方法详解)的文章就介绍到这了,更多相关clion运行多个main函数内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。