最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Cmake基礎(chǔ)教程(一)

2023-08-20 17:55 作者:上岸的小浣熊  | 我要投稿

1、基礎(chǔ)信息

cmake_minimum_required(VERSION 3.23)? ? # 所需cmake的最低版本

set(CMAKE_C_STANDARD 99)? ? ? ?# c/cxx語(yǔ)言編譯標(biāo)準(zhǔn)

project(test)? ? ? ? ? # 項(xiàng)目名稱 / 庫(kù)名稱

? ? ? 上述3條信息是CMakeLists中最基礎(chǔ)的,也是必須的3條信息。

2、定義變量

? ? ? 定義變量使用的是set變量,同時(shí)通過(guò)設(shè)置變量,可以達(dá)到簡(jiǎn)化CMake表達(dá)的作用。使用方法:set(變量名 變量值)。例如:

set(APPNAME test)? ? ?? #?設(shè)置可執(zhí)行程序名
set(LIBPATH ${PROJECT_SOURCE_DIR}/lib)? ? ?# 設(shè)置靜態(tài)庫(kù)路徑( ${ } 為變量引用方式)

3、添加并構(gòu)建子目錄

? ? ? add_subdirectory:添加并構(gòu)建子目錄。共有3個(gè)參數(shù):source_dir 為必選參數(shù),該參數(shù)指定一個(gè)子目錄 (絕對(duì)路徑 / 相對(duì)路徑),同時(shí)子目錄下應(yīng)該包含一個(gè) CMakeLists.txt文件和代碼文件用于構(gòu)建。binary_dir 為可選參數(shù),指定輸出文件的存放目錄,默認(rèn)為source_dir。EXCLUDE_FROM_ALL 為可選參數(shù),子目錄下的目標(biāo)不會(huì)被父目錄下的目標(biāo)文件包含進(jìn)去,父目錄的CMakeLists.txt不會(huì)構(gòu)建子目錄的目標(biāo)文件,必須在子目錄下顯式去構(gòu)建。

4、鏈接庫(kù)

? ? ? ?CMake 中鏈接庫(kù)主要有兩個(gè)命令:link_libraries 和 target_link_libraries

? ? ? ?link_libraries 用于鏈接靜態(tài)庫(kù),包含庫(kù)名和路徑兩個(gè)變量,其中,庫(kù)名可以使用全稱(libxx.a),也可以使用簡(jiǎn)稱 (掐頭去尾xx),如果靜態(tài)庫(kù)是第三方的,可以使用 link_directories將靜態(tài)庫(kù)路徑指定出來(lái),避免出現(xiàn)找不到靜態(tài)庫(kù)的情況。

? ? ? target_link_libraries 用于鏈接動(dòng)態(tài)庫(kù),包含目標(biāo)名、庫(kù)訪問(wèn)權(quán)限、庫(kù)名三個(gè)變量。target (目標(biāo)) 可以是一個(gè)源文件、動(dòng)態(tài)庫(kù)、可執(zhí)行文件。權(quán)限有PUBLIC(允許第三方訪問(wèn))、PRIVATE(不允許第三方訪問(wèn))、INTERFACE(不鏈接,只導(dǎo)出符號(hào))三種,默認(rèn)為PUBLIC,

? ? ? 當(dāng)訪問(wèn)權(quán)限為 PUBLIC 時(shí),動(dòng)態(tài)庫(kù)的鏈接具有傳遞性:當(dāng)動(dòng)態(tài)庫(kù) A 同時(shí)鏈接了動(dòng)態(tài)庫(kù) B 和 C,那么在下次只需要鏈接動(dòng)態(tài)庫(kù) A,就可以使用 B 和 C 中的函數(shù)了。

? ? ? link_libraries 置于生成目標(biāo)之前,target_link_libraries 置于生成目標(biāo)之后。

5、包含頭文件目錄

? ? ? 使用 include_directories 包含一個(gè)或多個(gè)頭文件目錄,可以是相對(duì)路徑,也可以是絕對(duì)路徑。

常見(jiàn)的路徑表達(dá)方式:

①??CMAKE_BINARY_DIR / PROJECT_BINARY_DIR:生成的庫(kù)、可執(zhí)行文件等的存放位置,工程頂層目錄(in) / 工程編譯發(fā)生的目錄(out)。

②?CMAKE_SOURCE_DIR / PROJECT_SOURCE_DIR:工程頂層目錄。

③ CMAKE_CURRENT_SOURCE_DIR:當(dāng)前CMakeLists.txt 所在的路徑。

④ CMAKE_CURRENT_BINARY_DIR:當(dāng)前CMakeLists.txt 所在的構(gòu)建目錄的路徑。

⑤ CMAKE_LIBRARY_OUTPUT_DIRECTORY:庫(kù)文件的輸出目錄。

⑥ CMAKE_RUNTIME_OUTPUT_DIRECTORY:可執(zhí)行文件的輸出目錄。

Cmake基礎(chǔ)教程(一)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
青州市| 黄山市| 泗洪县| 陵川县| 定结县| 扬中市| 平顺县| 漳平市| 齐河县| 诸暨市| 门头沟区| 永吉县| 江山市| 潮州市| 万安县| 洪洞县| 德清县| 内丘县| 桦甸市| 高邮市| 藁城市| 司法| 涞源县| 抚宁县| 满城县| 收藏| 观塘区| 行唐县| 张家川| 林西县| 司法| 怀安县| 吉木乃县| 乌拉特中旗| 罗城| 宁强县| 铜陵市| 万山特区| 瑞安市| 陆丰市| 琼结县|