翻譯|使用教程|編輯:鮑佳佳|2020-10-23 12:09:54.467|閱讀 3791 次
概述:本教程將指導(dǎo)您完成創(chuàng)建和開發(fā)簡(jiǎn)單CMake項(xiàng)目的過程。我們將逐步學(xué)習(xí)CMake作為構(gòu)建系統(tǒng)的基礎(chǔ)知識(shí),以及CMake項(xiàng)目的CLion設(shè)置和操作。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
CLion是一款專為開發(fā)C及C++所設(shè)計(jì)的跨平臺(tái)IDE。它是以IntelliJ為基礎(chǔ)設(shè)計(jì)的,包含了許多智能功能來提高開發(fā)人員的生產(chǎn)力。這種強(qiáng)大的IDE幫助開發(fā)人員在Linux、OS X和Windows上來開發(fā)C/C++,同時(shí)它還使用智能編輯器來提高代碼質(zhì)量、自動(dòng)代碼重構(gòu)并且深度整合CMake編譯系統(tǒng),從而提高開發(fā)人員的工作效率。感興趣的朋友歡迎下載試用!CLion現(xiàn)已加入在線訂購(gòu),點(diǎn)擊此處查看價(jià)格詳情>>
本教程將指導(dǎo)您完成創(chuàng)建和開發(fā)簡(jiǎn)單CMake項(xiàng)目的過程。我們將逐步學(xué)習(xí)CMake作為構(gòu)建系統(tǒng)的基礎(chǔ)知識(shí),以及CMake項(xiàng)目的CLion設(shè)置和操作。
1.基本的CMake項(xiàng)目
CMake是一個(gè)元構(gòu)建系統(tǒng),它使用稱為CMakeLists的腳本為特定環(huán)境生成構(gòu)建文件(例如,Unix計(jì)算機(jī)上的makefile)。在CLion中創(chuàng)建新的CMake項(xiàng)目時(shí),會(huì)在項(xiàng)目根目錄下自動(dòng)生成CMakeLists.txt文件。
讓我們從創(chuàng)建一個(gè)新的CMake項(xiàng)目開始,轉(zhuǎn)到File | New Project ,然后選擇C ++ Executable。在我們的示例中,項(xiàng)目名稱為cmake_testapp,并且所選語(yǔ)言標(biāo)準(zhǔn)為C ++ 14。
默認(rèn)情況下,我們使用單個(gè)源文件獲取項(xiàng)目主.cpp以及自動(dòng)創(chuàng)建的根CMakeLists.txt文件包含以下命令:
2.構(gòu)建目標(biāo)和運(yùn)行/調(diào)試配置
目標(biāo)是使用CMake腳本構(gòu)建的可執(zhí)行文件或庫(kù)。您可以在一個(gè)腳本中定義多個(gè)構(gòu)建目標(biāo)。
目前,我們的測(cè)試項(xiàng)目只有一個(gè)構(gòu)建目標(biāo)cmake_testapp。首次加載項(xiàng)目時(shí),CLion自動(dòng)添加與此目標(biāo)關(guān)聯(lián)的運(yùn)行/調(diào)試配置:
單擊切換器中的“Edit Configurations ”,或選擇“Run | Edit Configurations”。從主菜單中編輯配置以查看詳細(xì)信息。目標(biāo)名稱和可執(zhí)行文件名稱直接來自CMakeLists.txt:
注意此對(duì)話框的“Before launch ”區(qū)域:默認(rèn)情況下,將構(gòu)建設(shè)置為啟動(dòng)前步驟。因此,我們不僅可以使用此配置來調(diào)試或運(yùn)行目標(biāo),還可以執(zhí)行構(gòu)建。
3.添加目標(biāo)并重新加載項(xiàng)目
現(xiàn)在,讓我們添加另一個(gè)源文件calc.cpp并從中創(chuàng)建一個(gè)新的可執(zhí)行目標(biāo)。
右鍵單擊“項(xiàng)目”樹中的根文件夾,然后選擇“ New | C/C++ Source File.”。C / C ++源文件。CLion提示將文件添加到現(xiàn)有目標(biāo):
由于我們的目標(biāo)是創(chuàng)建新目標(biāo),因此請(qǐng)清除“Add to targets”復(fù)選框。因此,CLion通知我們新文件當(dāng)前不屬于任何目標(biāo):
現(xiàn)在,讓我們?cè)?span id="39abb">CMakeLists.txt中手動(dòng)聲明一個(gè)新目標(biāo)。請(qǐng)注意,CLion將CMake腳本視為常規(guī)代碼文件,因此我們可以使用代碼輔助功能,例如語(yǔ)法突出顯示,自動(dòng)完成和導(dǎo)航:
當(dāng)我們?cè)?span id="39ac1">CMakeLists.txt中進(jìn)行更改時(shí),CLion需要重新加載它以更新項(xiàng)目結(jié)構(gòu):
我們可以重新加載項(xiàng)目一次(重新加載更改),也可以啟用自動(dòng)重新加載以使CLion默認(rèn)應(yīng)用CMakeLists.txt中的所有更改。 Settings / Preferences | Build, Execution, Deployment | CMake自動(dòng)重新加載的選項(xiàng)。
重新加載項(xiàng)目后,CLion為新目標(biāo)添加Run/Debug :
Library targets
到目前為止,我們添加的目標(biāo)是可執(zhí)行文件,我們?cè)?jīng)add_executable聲明過它們。對(duì)于庫(kù)目標(biāo),我們需要另一個(gè)命令-add_library。例如,讓我們從calc.cpp源文件創(chuàng)建一個(gè)靜態(tài)庫(kù):
add_library(test_library STATIC calc.cpp)與可執(zhí)行文件一樣,CLion在重新加載項(xiàng)目后為庫(kù)目標(biāo)添加Run/Debug配置:
但是,這是不可執(zhí)行的配置,因此,如果我們嘗試運(yùn)行或調(diào)試它,則會(huì)收到Executable not specified error錯(cuò)誤消息。
要獲取庫(kù)文件,我們需要構(gòu)建test_library目標(biāo)。為此,我們可以切換到相應(yīng)的配置并按,或調(diào)用Build | Build "test_library"。該libtest_library.a文件將出現(xiàn)在cmake的建造調(diào)試文件夾中。
4.構(gòu)建類型和CMake配置文件
到目前為止創(chuàng)建的所有“Run/Debug”配置都是“Debug”配置,這是為我們的項(xiàng)目自動(dòng)配置的CMake配置文件的默認(rèn)構(gòu)建類型。CMake配置文件是項(xiàng)目構(gòu)建的一組選項(xiàng)。它指定了工具鏈,構(gòu)建類型,CMake標(biāo)志,用于存儲(chǔ)構(gòu)建工件的路徑,make生成選項(xiàng)以及環(huán)境變量。
例如,要分離Debug和Release版本,我們需要在 Settings / Preferences | Build, Execution, Deployment | CMake中添加一個(gè)新的CMake配置文件。并將其構(gòu)建類型設(shè)置為Release:
注意Build directory字段,該字段指定生成結(jié)果的位置。對(duì)于調(diào)試配置文件,默認(rèn)文件夾是cmake-build-debug;對(duì)于發(fā)布配置文件,默認(rèn)文件夾是cmake- build-release。您始終可以設(shè)置其他選擇的位置。
現(xiàn)在,“運(yùn)行/調(diào)試”配置切換器顯示兩個(gè)可用的配置文件:
切換配置或CMake配置文件可能會(huì)影響解析代碼時(shí)使用的預(yù)處理器定義。例如,當(dāng)有針對(duì)Debug和Release構(gòu)建的單獨(dú)標(biāo)志時(shí),或者當(dāng)某些變量根據(jù)構(gòu)建類型采用不同的值時(shí)。這稱為解析上下文。
解析上下文定義了CLion如何執(zhí)行語(yǔ)法突出顯示以及其他代碼見解,例如“查找用法”,重構(gòu)和代碼完成。在配置之間切換時(shí),當(dāng)前文件的解析上下文會(huì)自動(dòng)更改。另外,您可以在上下文切換器中手動(dòng)選擇它(<自動(dòng)選擇>恢復(fù)自動(dòng)選擇):
今天的內(nèi)容你學(xué)會(huì)了嗎?接下來我們將講解目錄與庫(kù)方面的知識(shí)!前往慧都網(wǎng)免費(fèi)下載最新版嘗試一下,在評(píng)論分享你的想法。慧都隆重推出“軟件國(guó)產(chǎn)化服務(wù)季 ” 低價(jià)狂潮,省到尖叫最高立減2999元!低至797元!想要購(gòu)買Clion正版授權(quán)的朋友歡迎。
JetBrain技術(shù)交流群現(xiàn)已開通,QQ搜索群號(hào)“786598704”或者掃描下方二維碼即可加入
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: