欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在 clion 運行多個 main 函數(shù)(方法詳解)

 更新時間:2020年08月18日 11:59:43   作者:acDream_  
這篇文章主要介紹了如何在 clion 運行多個 main 函數(shù),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在寫 C++ 的題目的時候經(jīng)常會遇到這樣的問題,寫了多個 cpp 文件,在 clion 中編譯報錯不能同時存在多 main 函數(shù)
這里寫了一個小程序優(yōu)雅地解決這個問,非常簡單,就是就是讀字符串寫文件
直接修改一下 CMake 自動遍歷文件即可

多個 main 函數(shù)的報錯

在 clion 中寫完一題,想寫下一題,結(jié)果發(fā)現(xiàn) main 函數(shù)不能運行

none-main

正確的解決方法

在牛客用戶 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

reload-cmake

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

run-button

補充

博客底下有人問這種方法只能遍歷根目錄下的一層,如果根目錄下還有文件夾,則里面的 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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)酒店管理系統(tǒng)

    C語言實現(xiàn)酒店管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 基于c語言知識點的補遺介紹

    基于c語言知識點的補遺介紹

    本篇文章是對c語言知識點的一些補遺進行詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 深入淺出理解C語言初識結(jié)構(gòu)體

    深入淺出理解C語言初識結(jié)構(gòu)體

    C?數(shù)組允許定義可存儲相同類型數(shù)據(jù)項的變量,結(jié)構(gòu)是?C?編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許你存儲不同類型的數(shù)據(jù)項,本篇讓我們來了解C?的結(jié)構(gòu)體
    2022-02-02
  • Qt?QPainter的使用方法

    Qt?QPainter的使用方法

    QPainter是Qt的一個繪圖類,它的主要任務(wù)是在繪圖設(shè)備上進行2D圖形渲染,本文主要介紹了Qt?QPainter的使用方法,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • C++ 如何將string轉(zhuǎn)換成全小寫

    C++ 如何將string轉(zhuǎn)換成全小寫

    這篇文章主要介紹了C++ 如何將string轉(zhuǎn)換成全小寫問題,具有很好的參考價值,希望對大家有所幫助。
    2022-11-11
  • C語言 枚舉類型(Enum)詳解及示例代碼

    C語言 枚舉類型(Enum)詳解及示例代碼

    本文主要介紹C語言 枚舉類型,這里提供了詳細的相關(guān)資料及示例代碼,以便大家學(xué)習(xí)參考,有興趣的小伙伴可以參考下
    2016-08-08
  • C語言項目爬樓梯的兩種實現(xiàn)方法參考

    C語言項目爬樓梯的兩種實現(xiàn)方法參考

    今天小編就為大家分享一篇關(guān)于C語言項目爬樓梯的兩種實現(xiàn)方法參考,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • 利用Matlab制作一款3D版2048小游戲

    利用Matlab制作一款3D版2048小游戲

    2048作為一款經(jīng)典的小游戲,相信很多人都玩過吧?但是3D版的2048不知道有沒有人玩過呢?本文將用Matlab制作一個3D版的2048小游戲,快跟隨小編一起動手試一試吧
    2022-02-02
  • C語言內(nèi)存對齊實例詳解

    C語言內(nèi)存對齊實例詳解

    這篇文章主要介紹了C語言內(nèi)存對齊,包括內(nèi)存對其的基本概念及用法,以及注意事項,并以實例形式加以說明,需要的朋友可以參考下
    2014-09-09
  • C++ OpenCV讀寫XML或YAML文件的方法詳解

    C++ OpenCV讀寫XML或YAML文件的方法詳解

    XML是一種元標(biāo)記語言。所謂元標(biāo)記,就是開發(fā)者可以根據(jù)自身需要定義自己的標(biāo)記。YAML是一個可讀性高,用來表達資料序列的格式。本文將通過C++和OpenCV實現(xiàn)這兩種文件的讀寫,需要的可以參考一下
    2022-05-05

最新評論