ubuntu16.04安裝CMake和makefile的使用

CMake安裝#

首先需要確認(rèn)是否安裝好g++,gcc (安裝方法 sudo apt-get install gcc,sudo apt-get install g++)

下載新版本:

下載:在cmake網(wǎng)站下載安裝包: https://cmake.org/download/

下載

 wget  https://[cmake](https://so.csdn.net/so/search?q=cmake&spm=1001.2101.3001.7020).org/files/v3.11/cmake-3.10.0.tar.gz 

3、解壓:tar -zxv -f cmake-3.10.0.tar.gz

4膘掰、進(jìn)入解壓后的文件:cd cmake-3.10.0

5塞帐、開始安裝

sudo ./bootstrap
sudo make
sudo make install

6.卸載
sudo make uninstall

Makefile文件使用#

什么是makefile蟋定?或許很多Winodws的程序員都不知道這個(gè)東西奕谭,因?yàn)槟切¦indows的IDE都為你做了這個(gè)工作,但我覺得要作一個(gè)好的和professional的程序員,makefile還是要懂僵井。這就好像現(xiàn)在有這么多的HTML的編輯器,但如果你想成為一個(gè)專業(yè)人士驳棱,你還是要了解HTML的標(biāo)識(shí)的含義批什。特別在Unix下的軟件編譯,你就不能不自己寫makefile了社搅,會(huì)不會(huì)寫makefile驻债,從一個(gè)側(cè)面說(shuō)明了一個(gè)人是否具備完成大型工程的能力。因?yàn)樾卧幔琺akefile關(guān)系到了整個(gè)工程的編譯規(guī)則合呐。

簡(jiǎn)單說(shuō)makefile文件的執(zhí)行可以在當(dāng)前文件夾下 make##

image.png

?make是什么?

make是一個(gè)命令工具笙以,是一個(gè)解釋makefile中指令的命令工具淌实。它可以簡(jiǎn)化編譯過(guò)程里面所下達(dá)的指令,當(dāng)執(zhí)行 make 時(shí)猖腕,make 會(huì)在當(dāng)前的目錄下搜尋 Makefile (or makefile) 這個(gè)文本文件拆祈,執(zhí)行對(duì)應(yīng)的操作。make 會(huì)自動(dòng)的判別原始碼是否經(jīng)過(guò)變動(dòng)了倘感,而自動(dòng)更新執(zhí)行檔放坏。

?為什么要使用make?

假設(shè)老玛,現(xiàn)在一個(gè)項(xiàng)目里面包含了100個(gè)程序文件淤年,如果要對(duì)這個(gè)項(xiàng)目進(jìn)行編譯,那么光是編譯指令就有100條蜡豹。如果要重新進(jìn)行編譯互亮,那么就又得像之前一樣重新來(lái)一遍。這樣重復(fù)且繁瑣的工作實(shí)在是讓我們很不爽啊余素。所以,用make來(lái)進(jìn)行操作炊昆,間接調(diào)用gcc豈不是很方便桨吊?如果我們更動(dòng)過(guò)某些原始碼檔案,則 make 也可以主動(dòng)的判斷哪一個(gè)原始碼與相關(guān)的目標(biāo)文件檔案有更新過(guò)凤巨, 并僅更新該檔案视乐。這樣可以減少重新編譯所需要的時(shí)間,也會(huì)更加方便敢茁。

?makefile又是干什么的佑淀?

makefile其實(shí)就是一個(gè)文檔,里面定義了一系列的規(guī)則指定哪些文件需要先編譯彰檬,哪些文件需要后編譯伸刃,哪些文件需要重新編譯谎砾,它記錄了原始碼如何編譯的詳細(xì)信息! makefile一旦寫好捧颅,只需要一個(gè)make命令景图,整個(gè)工程完全自動(dòng)編譯,極大的提高了軟件開發(fā)的效率碉哑。

先看一下makefile的規(guī)則:

目標(biāo)(target):目標(biāo)文件1 目標(biāo)文件2

<Tab>gcc -o 欲建立的執(zhí)行文件 目標(biāo)文件1 目標(biāo)文件2

目標(biāo)(target)就是我們想要建立的信息挚币,而目標(biāo)文件就是具有相關(guān)性的 object files ,建立執(zhí)行文件的語(yǔ)法就是以 <tab> 按鍵開頭的那一行扣典!特別留意妆毕,『 命令行必須要以 tab 按鍵作為開 頭』才行!它的規(guī)則基本上是這樣的: ?在 makefile 當(dāng)中的 # 代表批注贮尖;
  ?<tab> 需要在命令行 (例如 gcc 這個(gè)編譯程序指令) 的第一個(gè)字符笛粘;
  ?標(biāo)的 (target) 與相依檔案(就是目標(biāo)文件)之間需以『 :』隔開。

下面舉個(gè)例子說(shuō)明:

先分別創(chuàng)建三個(gè)文件远舅,如圖

image

創(chuàng)建一個(gè)makefile文件闰蛔,然后進(jìn)行規(guī)則編寫

image

現(xiàn)在就可以使用make命令編譯文件了,這樣是不是很方便呢图柏?

image

如果不想讓編譯規(guī)則顯示在屏幕上序六,只要在makefile里規(guī)則編寫前加個(gè)@它就不會(huì)顯示了~

如果現(xiàn)在再對(duì)文件編譯一次會(huì)發(fā)生什么?嘿嘿蚤吹,大家可以自己試一下例诀。

如果想要下達(dá)一 個(gè)指令就直接清除掉所有的目標(biāo)文件與執(zhí)行文件,又該怎么做呢裁着?

我們可以在makefile里面定義一個(gè)clean繁涂,執(zhí)行rm的操作。但是有一點(diǎn)要注意的是二驰,在這里我們最好使用偽目標(biāo)進(jìn)行操作扔罪。makefile里偽目標(biāo)用.PHONY進(jìn)行聲明。當(dāng)一個(gè)目標(biāo)被聲明為偽目標(biāo)后桶雀,make在執(zhí)行規(guī)則時(shí)不會(huì)去試圖去查找隱含規(guī)則來(lái)創(chuàng)建它矿酵。這樣就提高了make的執(zhí)行效率,也解決了文件目錄中如果出現(xiàn)名為clean文件矗积,clean操作不被執(zhí)行的問(wèn)題全肮。

image.jpeg

來(lái)源:https://www.cnblogs.com/qiaopei/p/5550168.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市棘捣,隨后出現(xiàn)的幾起案子辜腺,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件评疗,死亡現(xiàn)場(chǎng)離奇詭異测砂,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)壤巷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門邑彪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人胧华,你說(shuō)我怎么就攤上這事寄症。” “怎么了矩动?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵有巧,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我悲没,道長(zhǎng)篮迎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任示姿,我火速辦了婚禮甜橱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘栈戳。我一直安慰自己岂傲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布子檀。 她就那樣靜靜地躺著镊掖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪褂痰。 梳的紋絲不亂的頭發(fā)上亩进,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音缩歪,去河邊找鬼归薛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛匪蝙,可吹牛的內(nèi)容都是我干的主籍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼骗污,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了沈条?” 一聲冷哼從身側(cè)響起需忿,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后屋厘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涕烧,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年汗洒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了议纯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溢谤,死狀恐怖瞻凤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情世杀,我是刑警寧澤阀参,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站瞻坝,受9級(jí)特大地震影響蛛壳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜所刀,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一衙荐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浮创,春花似錦忧吟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至雏掠,卻和暖如春斩祭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乡话。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工摧玫, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绑青。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓诬像,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親闸婴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坏挠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359