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

正確的解決方法
在??陀脩?a target="_blank" > AAnonymous 的告知下,借鑒了他的 github 上的 CMakeLists.txt,直接修改 CMakeLists.txt 即可,之前自己寫了一個(gè)傻傻的方法。以我的 Project 的 CMakeList.txt 為例
cmake_minimum_required(VERSION 3.15)
project(JZ_offer)
set(CMAKE_CXX_STANDARD 14)
# 遍歷項(xiàng)目根目錄下所有的 .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ù),在項(xiàng)目處右擊,選擇 Reload CMake Project

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

補(bǔ)充
博客底下有人問這種方法只能遍歷根目錄下的一層,如果根目錄下還有文件夾,則里面的 cpp 文件沒有被識(shí)別,查了一個(gè)有點(diǎn)舊的官方文檔,有 GLOB_RECURSE 的方法,不過也試了一種自己的方法
# 如果你只需要根目錄下的 test 文件夾的所有 .cpp 文件 file (GLOB files test/*.cpp) # 如果你只有兩層目錄的話 file (GLOB files *.cpp */*.cpp) # 同理,三層的話 file (GLOB files *.cpp */*.cpp */*/*.cpp) # 官方提供了一種遞歸的方法 # 這樣在運(yùn)行框會(huì)多一個(gè) CMakeCXXCompilerId,不過無傷大雅 file (GLOB_RECURSE files *.cpp)
還有人問如果我想在運(yùn)行框顯示 文件夾/文件名 應(yīng)該怎么做,經(jīng)過測試對于 / 應(yīng)該是 CMAKE 中使用的符號(hào),不能在其中使用,\\1 和 \\2 之間可以用 . 和 -
string(REGEX REPLACE ".+/(.+)/(.+)\\..*" "\\1-\\2" exe ${file})
到此這篇關(guān)于如何在 clion 運(yùn)行多個(gè) main 函數(shù)(方法詳解)的文章就介紹到這了,更多相關(guān)clion 運(yùn)行多個(gè) main 函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言實(shí)現(xiàn)成績統(tǒng)計(jì)示例
這篇文章主要介紹了C語言實(shí)現(xiàn)成績統(tǒng)計(jì)示例,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11
c語言實(shí)現(xiàn)通訊錄管理系統(tǒng)詳細(xì)實(shí)例
這篇文章主要給大家介紹了關(guān)于c語言實(shí)現(xiàn)通訊錄管理系統(tǒng)的相關(guān)資料,通訊錄管理系統(tǒng)是一種常見的應(yīng)用程序,可以用來管理聯(lián)系人的信息,包括姓名、電話號(hào)碼、地址等,需要的朋友可以參考下2023-07-07
C語言系統(tǒng)日期和時(shí)間實(shí)例詳解
我們在寫C語言程序的時(shí)候,有的時(shí)候會(huì)用到讀取本機(jī)的時(shí)間和日期,下面這篇文章主要給大家介紹了關(guān)于C語言系統(tǒng)日期和時(shí)間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
C++簡單實(shí)現(xiàn)shared_ptr的代碼
智能指針用于資源管理,為了保證資源的操作得到順利的執(zhí)行防止資源泄露,因此大多數(shù)實(shí)現(xiàn)都以noexcept在參數(shù)列表后聲明為不拋出異常,這篇文章主要介紹了C++簡單實(shí)現(xiàn)shared_ptr的代碼,需要的朋友可以參考下2022-09-09
Java?C++?算法題解leetcode145商品折扣后最終價(jià)格單調(diào)棧
這篇文章主要介紹了Java?C++?算法題解leetcode145商品折扣后最終價(jià)格單調(diào)棧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09

