如何在 clion 運行多個 main 函數(shù)(方法詳解)
在寫 C++ 的題目的時候經(jīng)常會遇到這樣的問題,寫了多個 cpp 文件,在 clion 中編譯報錯不能同時存在多 main 函數(shù)
這里寫了一個小程序優(yōu)雅地解決這個問,非常簡單,就是就是讀字符串寫文件
直接修改一下 CMake 自動遍歷文件即可
多個 main 函數(shù)的報錯
在 clion 中寫完一題,想寫下一題,結(jié)果發(fā)現(xiàn) main 函數(shù)不能運行

正確的解決方法
在??陀脩?a target="_blank" > AAnonymous 的告知下,借鑒了他的 github 上的 CMakeLists.txt,直接修改 CMakeLists.txt 即可,之前自己寫了一個傻傻的方法。以我的 Project 的 CMakeList.txt 為例
cmake_minimum_required(VERSION 3.15)
project(JZ_offer)
set(CMAKE_CXX_STANDARD 14)
# 遍歷項目根目錄下所有的 .cpp 文件
file (GLOB files *.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 ()
在新建對應(yīng)的 xx.cpp 文件之后,創(chuàng)建 main 函數(shù),在項目處右擊,選擇 Reload CMake Project

在重新加載完之后可以看到 main 函數(shù)前面出現(xiàn)了運行按鈕,運行框列表也有了對應(yīng)的運行選項

補充
博客底下有人問這種方法只能遍歷根目錄下的一層,如果根目錄下還有文件夾,則里面的 cpp 文件沒有被識別,查了一個有點舊的官方文檔,有 GLOB_RECURSE 的方法,不過也試了一種自己的方法
# 如果你只需要根目錄下的 test 文件夾的所有 .cpp 文件 file (GLOB files test/*.cpp) # 如果你只有兩層目錄的話 file (GLOB files *.cpp */*.cpp) # 同理,三層的話 file (GLOB files *.cpp */*.cpp */*/*.cpp) # 官方提供了一種遞歸的方法 # 這樣在運行框會多一個 CMakeCXXCompilerId,不過無傷大雅 file (GLOB_RECURSE files *.cpp)
還有人問如果我想在運行框顯示 文件夾/文件名 應(yīng)該怎么做,經(jīng)過測試對于 / 應(yīng)該是 CMAKE 中使用的符號,不能在其中使用,\\1 和 \\2 之間可以用 . 和 -
string(REGEX REPLACE ".+/(.+)/(.+)\\..*" "\\1-\\2" exe ${file})
到此這篇關(guān)于如何在 clion 運行多個 main 函數(shù)(方法詳解)的文章就介紹到這了,更多相關(guān)clion 運行多個 main 函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

