欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何正確的使用CMake-創(chuàng)新互聯(lián)

如何正確的使用CMake?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

10年積累的網(wǎng)站制作、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有津市免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

CMake是一個(gè)比make更高級(jí)的編譯配置工具,它可以根據(jù)不同平臺(tái)、不同的編譯器,生成相應(yīng)的Makefile。通過(guò)編寫(xiě)CMakeLists.txt,可以控制生成的Makefile,從而控制編譯過(guò)程。CMake自動(dòng)生成的Makefile不僅可以通過(guò)make命令構(gòu)建項(xiàng)目,生成目標(biāo)文件,還支持安裝(make install)、測(cè)試安裝的程序是否能正確執(zhí)行(make test,或者ctest)、生成當(dāng)前平臺(tái)的安裝包(make package)、生成源碼包(make package_source)、產(chǎn)生Dashboard顯示數(shù)據(jù)并上傳等高級(jí)功能,只要在CMakeLists.txt中簡(jiǎn)單配置,就可以完成很多復(fù)雜的功能,包括寫(xiě)測(cè)試用例。如果有嵌套目錄,子目錄下可以有自己的CMakeLists.txt。


在 linux 平臺(tái)下使用 CMake 生成 Makefile 并編譯的流程如下:

1. 編寫(xiě) CMake 配置文件 CMakeLists.txt 。

2. 執(zhí)行命令 cmake PATH 或者 ccmake PATH 生成 Makefile。其中, PATH 是 CMakeLists.txt 所在的目錄。

3. 使用 make 命令進(jìn)行編譯。

語(yǔ)法

CMake基本語(yǔ)法由命令、注釋和空格組成,其中命令是不區(qū)分大小寫(xiě)的。符號(hào) # 后面的內(nèi)容被認(rèn)為是注釋。命令由命令名稱、小括號(hào)和參數(shù)組成,參數(shù)之間使用空格進(jìn)行間隔。變量引用使用 ${VAR} 形式。

command (args  ...)  #comment

常用命令:

   cmake_minimum_required (VERSION 2.8)  # CMake 最低版本號(hào)要求

project (Demo)               # 指定項(xiàng)目的名稱

set(SRCS main.cpp ...)             # 設(shè)置變量

include_directories(/usr/include/jsoncpp)        # 添加頭文件目錄,比如使用的一些lib庫(kù)

aux_source_directory(. DIR_SRCS)     # 查找當(dāng)前目錄下的所有源文件,并將名稱保存到 DIR_SRCS 變量

add_subdirectory(math)           # 添加 math 子目錄

add_executable(Demo main.cc ...)       # 指定生成目標(biāo),第一個(gè)參數(shù)為目標(biāo)文件名

add_library(MathFunctions ${DIR_LIB_SRCS})   # 添加一個(gè)庫(kù)文件

target_link_libraries(Demo MathFunctions)    # 添加鏈接庫(kù)

獲取更多CMake信息:

cmake --help

cmake --help-command-list

cmake --help-variable-list

示例代碼

示例代碼1:

cmake_minimum_required(VERSION 2.8)    # CMake 最低版本號(hào)要求

set(CMAKE_CXX_FLAGS "-std=c++0x")      # 設(shè)置編譯參數(shù)
include_directories(/usr/include/jsoncpp) # 添加頭文件目錄

set(SRCS                     # 設(shè)置變量SRCS,將所有源文件添加到變量SRCS
  SamsungRequestResolver.cpp
  SamsungResolverContainer.cpp
  SamsungResponseResolver.cpp
  BanCat.cpp
  main.cpp
)

add_executable(framework ${SRCS})     # 指定生成目標(biāo)
target_link_libraries(framework jsoncpp hiredis boost_system)  # 添加鏈接庫(kù)

示例代碼2:(來(lái)源于參考引用1)

代碼目錄如下所示,./Demo3目錄下有一個(gè)main.cc文件和一個(gè)math目錄。對(duì)于這種嵌套目錄的情況,需要在目錄 ./Demo3 和 ./Demo3/math 下各創(chuàng)建一個(gè)CMakeLists.txt。


./Demo3
  |
  +--- main.cc
  |
  +--- math/
     |
     +--- MathFunctions.cc
     |
     +--- MathFunctions.h

父目錄中的 CMakeLists.txt :

# CMake 最低版本號(hào)要求
cmake_minimum_required (VERSION 2.8)
# 項(xiàng)目信息
project (Demo3)
# 查找當(dāng)前目錄下的所有源文件
# 并將名稱保存到 DIR_SRCS 變量
aux_source_directory(. DIR_SRCS)
# 添加 math 子目錄,math目錄下的CMakeLists.txt文件和源代碼會(huì)被處理
add_subdirectory(math)
# 指定生成目標(biāo)Demo
add_executable(Demo main.cc)
# 添加鏈接庫(kù)
target_link_libraries(Demo MathFunctions)

子目錄中的 CMakeLists.txt:

 # 查找當(dāng)前目錄下的所有源文件
 # 并將名稱保存到 DIR_LIB_SRCS 變量
 aux_source_directory(. DIR_LIB_SRCS)
 # 生成鏈接庫(kù)
 add_library(MathFunctions ${DIR_LIB_SRCS})

編譯

在編譯之前,首先要將CMakeLists.txt文件放在代碼目錄中。為了方便管理生成的makefile文件、目標(biāo)文件等文件,好創(chuàng)建一個(gè)build目錄專門(mén)用來(lái)存放這些文件。在代碼目錄,依次執(zhí)行以下命令:

mkdir build
cd build
cmake ..
make

關(guān)于如何正確的使用CMake問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

新聞標(biāo)題:如何正確的使用CMake-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://chinadenli.net/article36/edjsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航企業(yè)網(wǎng)站制作網(wǎng)頁(yè)設(shè)計(jì)公司企業(yè)建站移動(dòng)網(wǎng)站建設(shè)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站