如何在 clion 運(yùn)行多個(gè) main 函數(shù)(方法詳解)
在寫 C++ 的題目的時(shí)候經(jīng)常會(huì)遇到這樣的問題,寫了多個(gè) cpp 文件,在 clion 中編譯報(bào)錯(cuò)不能同時(shí)存在多 main 函數(shù)
這里寫了一個(gè)小程序優(yōu)雅地解決這個(gè)問,非常簡(jiǎn)單,就是就是讀字符串寫文件
直接修改一下 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 ()
在新建對(duì)應(yīng)的 xx.cpp
文件之后,創(chuàng)建 main
函數(shù),在項(xiàng)目處右擊,選擇 Reload CMake Project
在重新加載完之后可以看到 main
函數(shù)前面出現(xiàn)了運(yùn)行按鈕,運(yùn)行框列表也有了對(duì)應(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)過測(cè)試對(duì)于 /
應(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言項(xiàng)目爬樓梯的兩種實(shí)現(xiàn)方法參考
今天小編就為大家分享一篇關(guān)于C語言項(xiàng)目爬樓梯的兩種實(shí)現(xiàn)方法參考,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02