cmake

在CMakeLists.txt中可以通過修改CMake內(nèi)置的環(huán)境變量來改變C或C++的編譯選項(xiàng).

編譯選項(xiàng)相關(guān)的CMake 變量如下:

CMAKE_C_FLAGS = 
CMAKE_C_FLAGS_DEBUG = -g
CMAKE_C_FLAGS_MINSIZEREL = -Os -DNDEBUG
CMAKE_C_FLAGS_RELEASE = -O3 -DNDEBUG
CMAKE_C_FLAGS_RELWITHDEBINFO = -O2 -g -DNDEBUG

CMAKE_CXX_FLAGS = 
CMAKE_CXX_FLAGS_DEBUG = -g
CMAKE_CXX_FLAGS_MINSIZEREL = -Os -DNDEBUG
CMAKE_CXX_FLAGS_RELEASE = -O3 -DNDEBUG
CMAKE_CXX_FLAGS_RELWITHDEBINFO = -O2 -g -DNDEBUG
1234567891011

等號右邊是通過在CMakeLists.txt中打印對應(yīng)變量得到的默認(rèn)值护锤。

對于C語言設(shè)置CMAKE_C_FLAGS相關(guān)參數(shù)葫辐,C++語言設(shè)置CMAKE_CXX_FLAGS相關(guān)參數(shù)幔烛。并且分為DEBUG帮毁,RELEASE哆料,MINSIZEREL和RELWITHDEBINFO四種類型。

以C語言編譯選項(xiàng)為例:

CMAKE_C_FLAGS_DEBUG:編譯Debug版本的時候會采用的編譯選項(xiàng)父虑,默認(rèn)只有一個-g選項(xiàng)眼溶,包含調(diào)試信息;

CMAKE_C_FLAGS_RELEASE:編譯Release版本的時候采用的編譯選項(xiàng)幅疼,默認(rèn)包-O3選項(xiàng)米奸,該選項(xiàng)表示優(yōu)化等級;

CMAKE_C_FLAGS_MINSIZEREL:主要減小目標(biāo)文件大小爽篷,選項(xiàng)-Os就是這個作用悴晰;

CMAKE_C_FLAGS_RELWITHDEBINFO:包含調(diào)試信息的Release版本,-O2和-g狼忱,優(yōu)化的同時也包含了調(diào)試信息膨疏;

CMAKE_C_FLAGS:這個選項(xiàng)沒有默認(rèn)值一睁;

顧名思義钻弄,當(dāng)CMake在編譯項(xiàng)目的時候,選項(xiàng)為Debug則會采用CMAKE_C_FLAGS_DEBUG選項(xiàng)者吁,編譯Release則會采用CMAKE_C_FLAGS_RELEASE選項(xiàng)窘俺,因此,需要設(shè)置編譯選項(xiàng)的時候复凳,在CMakeLists.txt中設(shè)置這些變量就可以了瘤泪。

實(shí)際上可以分別設(shè)置CMAKE_C_FLAGS_DEBUG和CMAKE_C_FLAGS_RELEASE,如下:

set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -std=c++11 -Wl,-rpath=../lib")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -std=c++11 -g")
12

上面的設(shè)置兩個都有-std=c++11育八,這個選項(xiàng)是一個公共的選項(xiàng)对途,不管是Release還是Debug都需要設(shè)置。這種情況還可以把公共的設(shè)置放在CMAKE_C_FLAGS變量里面髓棋,如下:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}  -Wl,-rpath=../lib")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g")
123

因?yàn)樵谧罱K編譯的時候的編譯選項(xiàng)不管是Release還是Debug都包含了CMAKE_CXX_FLAGS這個變量实檀。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惶洲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子膳犹,更是在濱河造成了極大的恐慌恬吕,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件须床,死亡現(xiàn)場離奇詭異铐料,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)豺旬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門钠惩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哈垢,你說我怎么就攤上這事妻柒。” “怎么了耘分?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵举塔,是天一觀的道長。 經(jīng)常有香客問我求泰,道長央渣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任渴频,我火速辦了婚禮芽丹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卜朗。我一直安慰自己拔第,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布场钉。 她就那樣靜靜地躺著蚊俺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逛万。 梳的紋絲不亂的頭發(fā)上泳猬,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機(jī)與錄音宇植,去河邊找鬼得封。 笑死,一個胖子當(dāng)著我的面吹牛指郁,可吹牛的內(nèi)容都是我干的忙上。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼闲坎,長吁一口氣:“原來是場噩夢啊……” “哼疫粥!你這毒婦竟也來了洋腮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤手形,失蹤者是張志新(化名)和其女友劉穎啥供,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體库糠,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伙狐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞬欧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贷屎。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖艘虎,靈堂內(nèi)的尸體忽然破棺而出唉侄,到底是詐尸還是另有隱情,我是刑警寧澤野建,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布属划,位于F島的核電站,受9級特大地震影響候生,放射性物質(zhì)發(fā)生泄漏同眯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一唯鸭、第九天 我趴在偏房一處隱蔽的房頂上張望须蜗。 院中可真熱鬧,春花似錦目溉、人聲如沸明肮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柿估。三九已至,卻和暖如春蛉腌,著一層夾襖步出監(jiān)牢的瞬間官份,已是汗流浹背只厘。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工烙丛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人羔味。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓河咽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赋元。 傳聞我的和親對象是個殘疾皇子忘蟹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

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

  • CMake 簡介 CMake 是一個跨平臺的自動化建構(gòu)系統(tǒng),它使用一個名為 CMakeLists.txt 的文件來...
    火山_eb5e閱讀 522評論 0 0
  • CMake官方教程 CMake教程提供了逐步指南飒房,涵蓋了CMake可以解決的常見構(gòu)建系統(tǒng)問題。了解示例項(xiàng)目中各個主...
    YottaYuan閱讀 577評論 0 1
  • 友情提示媚值,下面一大段都是廢話狠毯,可以直接跳到后面的部分... 工作以來,一直從事的是基于Windows的C/C++開...
    LiarMaiq閱讀 977評論 0 0
  • 1.安裝 $sudo apt-get install cmake 2.示例:簡單的文件目錄 sample |—...
    荷包蛋醬閱讀 29,630評論 0 15
  • 目錄 參考資料 1. 官方文檔[https://cmake.org/cmake/help/v3.21/]2. CM...
    小小小_大大大閱讀 1,258評論 0 0