CMake指南

版權(quán)申明:

本文原創(chuàng)首發(fā)于以下網(wǎng)站萌踱,您可以自由轉(zhuǎn)載麻裳,但必須加入完整的版權(quán)聲明

博客園:https://www.cnblogs.com/MogooStudio/
csdn博客:https://blog.csdn.net/nmjkl001/
知乎:https://www.zhihu.com/people/MogooStudio/
簡(jiǎn)書(shū):http://www.reibang.com/u/9547c81ca54e
segmentfault:https://segmentfault.com/u/mogoostudio

CMakeLists.txt 文件解析

  • cmake verson,指定cmake版本
    cmake_minimum_required(VERSION 3.2)
  • project name未荒,指定項(xiàng)目的名稱,一般和項(xiàng)目的文件夾名稱對(duì)應(yīng)
    PROJECT(test_sqrt)
  • head file path,頭文件目錄
    INCLUDE_DIRECTORIES(
    include
    )
  • source directory等曼,源文件目錄
    AUX_SOURCE_DIRECTORY(src DIR_SRCS)
  • set environment variable,設(shè)置環(huán)境變量凿蒜,編譯用到的源文件全部都要放到這里禁谦,否則編譯能夠通過(guò),但是執(zhí)行的時(shí)候會(huì)出現(xiàn)各種問(wèn)題废封,比如"symbol lookup error xxxxx , undefined symbol"
    SET(TEST_MATH
    ${DIR_SRCS}
    )
  • add executable file州泊,添加要編譯的可執(zhí)行文件
    ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
  • add link library,添加可執(zhí)行文件所需要的庫(kù)漂洋,比如我們用到了libm.so(命名規(guī)則:lib+name+.so)遥皂,就添加該庫(kù)的名稱
    TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)

編譯階段

  • make 命令默認(rèn)執(zhí)行的是 make all,make all 有四個(gè)階段: prepare test compile package
    make prepare : 只會(huì)執(zhí)行prepare階段刽漂,這個(gè)階段主要是下載編譯依賴
    make test : 只會(huì)執(zhí)行test階段演训,這個(gè)階段主要是做單元測(cè)試
    make compile : 只會(huì)執(zhí)行compile階段,這個(gè)階段主要是進(jìn)行編譯
    make package : 只會(huì)執(zhí)行packege階段贝咙,這個(gè)階段會(huì)把編譯產(chǎn)出都copy到output目錄中
    make install : 只會(huì)執(zhí)行install階段样悟,這個(gè)階段是把編譯產(chǎn)出放到$GOPATH/bin目錄下,這個(gè)不是必須的
    make clean : 只會(huì)執(zhí)行clean階段庭猩,這個(gè)階段把編譯輸出的一些文件刪除乌奇,恢復(fù)到編譯之前的狀態(tài)

基本實(shí)踐

  1. 創(chuàng)建項(xiàng)目文件夾hello
  2. 文件夾hello內(nèi),創(chuàng)建構(gòu)建目錄build
  3. 文件夾hello內(nèi)眯娱,創(chuàng)建源代碼(main.cpp)
  4. 文件夾hello內(nèi)礁苗,創(chuàng)建CMakeLists.txt
     project(hello)
     add_executable(hello main.cpp)
    
  5. 通過(guò)cmake命令構(gòu)建項(xiàng)目:終端內(nèi)執(zhí)行命令:cmake PATH,這里執(zhí)行
     cd build
     cmake ..
    
  6. 通過(guò)cmake的gui構(gòu)建項(xiàng)目
    
    打開(kāi)cmake gui設(shè)置source和build
    點(diǎn)擊Configure設(shè)置platform徙缴,再點(diǎn)擊Configure
    點(diǎn)擊Genrate
    點(diǎn)擊OpenProject
    

構(gòu)建可執(zhí)行程序(待完善)

構(gòu)建庫(kù)程序(待完善)

我的聯(lián)系方式:

QQ:2161044579
郵箱:mogoostudio@outlook.com
Github:https://github.com/MogooStudio

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末试伙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子于样,更是在濱河造成了極大的恐慌疏叨,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件穿剖,死亡現(xiàn)場(chǎng)離奇詭異蚤蔓,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)糊余,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門秀又,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)单寂,“玉大人,你說(shuō)我怎么就攤上這事吐辙⌒觯” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,461評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵昏苏,是天一觀的道長(zhǎng)尊沸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)贤惯,這世上最難降的妖魔是什么洼专? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,135評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮孵构,結(jié)果婚禮上壶熏,老公的妹妹穿的比我還像新娘。我一直安慰自己浦译,他們只是感情好棒假,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著精盅,像睡著了一般帽哑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叹俏,一...
    開(kāi)封第一講書(shū)人閱讀 52,736評(píng)論 1 312
  • 那天妻枕,我揣著相機(jī)與錄音,去河邊找鬼粘驰。 笑死屡谐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蝌数。 我是一名探鬼主播愕掏,決...
    沈念sama閱讀 41,179評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼顶伞!你這毒婦竟也來(lái)了饵撑?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,124評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤唆貌,失蹤者是張志新(化名)和其女友劉穎滑潘,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體锨咙,經(jīng)...
    沈念sama閱讀 46,657評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡语卤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粹舵。...
    茶點(diǎn)故事閱讀 40,872評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡钮孵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出齐婴,到底是詐尸還是另有隱情油猫,我是刑警寧澤稠茂,帶...
    沈念sama閱讀 36,533評(píng)論 5 351
  • 正文 年R本政府宣布柠偶,位于F島的核電站,受9級(jí)特大地震影響睬关,放射性物質(zhì)發(fā)生泄漏诱担。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評(píng)論 3 336
  • 文/蒙蒙 一电爹、第九天 我趴在偏房一處隱蔽的房頂上張望蔫仙。 院中可真熱鬧,春花似錦丐箩、人聲如沸摇邦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,700評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)施籍。三九已至,卻和暖如春概漱,著一層夾襖步出監(jiān)牢的瞬間丑慎,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,819評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工瓤摧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留竿裂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,304評(píng)論 3 379
  • 正文 我出身青樓照弥,卻偏偏與公主長(zhǎng)得像腻异,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子这揣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • CMake學(xué)習(xí) 本篇分享一下有關(guān)CMake的一些學(xué)習(xí)心得以及相關(guān)使用捂掰。 本文目錄如下: [1、CMake介紹] [...
    AlphaGL閱讀 12,252評(píng)論 11 79
  • 注:首發(fā)地址 1. 前言 當(dāng)在做 Android NDK 開(kāi)發(fā)時(shí)曾沈,如果不熟悉用 CMake 來(lái)構(gòu)建这嚣,讀不懂 CMa...
    cfanr閱讀 24,433評(píng)論 1 53
  • 1.安裝 $sudo apt-get install cmake 2.示例:簡(jiǎn)單的文件目錄 sample |—...
    荷包蛋醬閱讀 29,659評(píng)論 0 15
  • 搬運(yùn)自本人 CSDN 博客:https://blog.csdn.net/ajianyingxiaoqinghan/...
    琦小蝦閱讀 15,395評(píng)論 0 11
  • CMake 全稱“cross platform make”,是開(kāi)源塞俱、跨平臺(tái)的自動(dòng)化構(gòu)建系統(tǒng)姐帚。CMake 由 Kit...
    神齊閱讀 4,127評(píng)論 0 6