C++開發平臺Clion入門教程:如何創建和開發CMake項目(下)
CLion是一款專為開發C及C++所設計的跨平臺IDE。它是以IntelliJ為基礎設計的,包含了許多智能功能來提高開發人員的生產力。這種強大的IDE幫助開發人員在Linux、OS X和Windows上來開發C/C++,同時它還使用智能編輯器來提高代碼質量、自動代碼重構并且深度整合CMake編譯系統,從而提高開發人員的工作效率。感興趣的朋友歡迎下載試用!CLion現已加入在線訂購,點擊此處查看價格詳情>>
本教程將指導您完成創建和開發簡單CMake項目的過程。我們將逐步學習CMake作為構建系統的基礎知識,以及CMake項目的CLion設置和操作。
上文中我們講述了前七個步驟,今天我們將繼續上文的內容。
5.添加包含目錄
為了使用位于單獨目錄中的其他標題,我們需要將它們添加到所有目標或某些特定目標中。
例如,讓我們在項目根目錄下創建三個目錄,包括include,includes / general,includes / math,并在CMakeLists.txt中編寫以下命令:
include_directories(includes/math) include_directories(includes/general)
這兩個命令使位于一般和數學中的標頭可用于包括來自所有目標源的標頭。例如,我們可以寫#include "header_math.h"在calc.cpp。
僅當您將標題和源明確包含在CMakeLists.txt中或將其包含在已經屬于該項目的其他文件中時,才能正確解析添加到該項目的標題和源
6.鏈接庫
靜態庫在上文第三部中,我們創建了一個名為test_library的靜態庫(默認文件名為libtest_library.a)。
讓我們在項目根目錄下創建一個lib目錄,并將libtest_library.a從其默認位置(cmake-build-debug)復制到此文件夾。
我們將使用兩個命令將靜態庫鏈接到cmake_testapp目標:find_library提供完整路徑,然后我們通過變量將其直接傳遞到target_link_libraries命令中${TEST_LIBRARY}:

注意:確保放置target_link_libraries在add_executable命令之后,以便CMake在鏈接庫之前實際構建目標。
動態庫(Boost示例)
為了說明鏈接動態庫,我們將舉一個使用Boost.Test框架的示例。
讓我們int add_values (int a, int b) { return a+b;} 在calc.cpp中編寫一個簡單的函數 ,并使用函數聲明創建關聯的標頭calc.h。我們將在Boost.Test框架的幫助下測試此功能。
有關使用Boost.Test的詳細信息,請參閱單元測試教程。
隨著我們的項目變得越來越復雜,CMakeLists.txt文件可能變得難以維護。為避免這種情況并建立透明的項目結構,我們將測試提取到子項目中。
讓我們添加一個名為test的目錄,并在其中創建源文件tests.cpp。另外,我們需要為該目錄提供其自己的CMakeLists.txt文件(在“Project”目錄中右鍵單擊test,然后選擇New | CMakeLists.txt):

子目錄test / CMakeLists.txt腳本最初為空。我們可以通過使用libs為Boost插入一個實時模板來開始填充它。按或單擊Code | Insert Live Template,然后選擇: Ctrl+J boost_with_libs

將插入的代碼調整為以下內容:
代碼set(Boost_USE_STATIC_LIBS OFF) #enable dynamic linking # search for unit_test_framework find_package(Boost REQUIRED COMPONENTS unit_test_framework) include_directories(${Boost_INCLUDE_DIR}) # create a cmake_testapp_boost target from test.cpp add_executable(cmake_testapp_boost tests.cpp) # link Boost libraries to the new target target_link_libraries(cmake_testapp_boost ${Boost_LIBRARIES}) # link Boost with code library target_link_libraries(cmake_testapp_boost test_library)
另外,我們需要將add_subdirectory(test)命令放在根 CMakeLists.txt中,以使我們的測試目標cmake_testapp_boost可用于主版本。
放置在根CMake腳本中時,此命令聲明一個子項目test,該子項目具有自己的CMakeLists.txt。
在兩個CMakeLists.txt文件中重新加載更改后,CLion為cmake_testapp_boost目標創建Run/Debug配置。這是常規的CMake應用程序配置,我們可以立即啟動。但是,為了能夠使用內置的測試運行器,讓我們從Boost.Test模板中創建另一個配置:

現在,我們可以運行此配置并獲取測試結果。測試運行器顯示套件中的測試樹,它們的輸出,狀態和持續時間:

7.了解更多
為了方便大家深入了解CLion中的CMake,接下來我將為大家帶來以下內容:
-
更改項目根目錄
-
重置CMake緩存
-
指定編譯器標志
-
切換編譯器
-
運行構建操作和CMake安裝
-
使用環境變量和CLION_IDE宏。
今天的內容你學會了嗎?前往慧都網免費下載最新版嘗試一下,并在評論分享你的想法?;鄱悸≈赝瞥觥?a target="_blank">軟件國產化服務季 ” 低價狂潮,省到尖叫最高立減2999元!低至797元!想要購買Clion正版授權的朋友歡迎。
JetBrain技術交流群現已開通,QQ搜索群號“786598704”或者掃描下方二維碼即可加入
