Makefile(二)

CMake呐舔、Make潜索、CMakeLists.txt以及Makefile的關系與區(qū)別

作者:玟清
鏈接:https://www.zhihu.com/question/27455963/answer/36722992
來源:知乎
著作權(quán)歸作者所有卸勺。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處雨席。

  1. make 是用來執(zhí)行Makefile文件的工具

  2. Makefile是類unix環(huán)境下(比如Linux)的類似于批處理的"腳本"文件亚皂。其基本語法是: 目標+依賴+命令,只有在目標文件不存在柱宦,或目標比依賴的文件更舊些椒,命令才會被執(zhí)行。由此可見掸刊,Makefile和make可適用于任意工作免糕,不限于編程。比如忧侧,可以用來管理latex石窑。

  3. Makefile+make可理解為類unix環(huán)境下的項目管理工具,但它太基礎了蚓炬,抽象程度不高松逊,而且在windows下不太友好(針對visual studio用戶),于是就有了跨平臺項目管理工具cmake肯夏。

  4. cmake是跨平臺項目管理工具棺棵,它用更抽象的語法來組織項目楼咳。雖然,仍然是目標烛恤,依賴之類的東西,但更為抽象和友好余耽,比如你可用math表示數(shù)學庫缚柏,而不需要再具體指定到底是math.dll還是libmath.so,在windows下它會支持生成visual studio的工程碟贾,在linux下它會生成Makefile币喧,甚至它還能生成eclipse工程文件。也就是說袱耽,從同一個抽象規(guī)則出發(fā)杀餐,它為各個編譯器定制工程文件。

  5. cmake是抽象層次更高的項目管理工具朱巨,cmake命令執(zhí)行的CMakeLists.txt文件

  6. qmake是Qt專用的項目管理工具史翘,對應的工程文件是.pro,在Linux下面它也會生成Makefile冀续,當然琼讽,在命令行下才會需要手動執(zhí)行qmake,完全可以在qtcreator這個專用的IDE下面打開.pro文件洪唐,使用qmake命令的繁瑣細節(jié)不用你管了钻蹬。

總結(jié)一下,make是用來執(zhí)行Makefile凭需,而cmake用來執(zhí)行CMakeLists.txt问欠,qmake用來處理 .pro工程文件。Makefile的抽象層次最低粒蜈,cmake和qmake在Linux等環(huán)境下最后還是會生成一個Makefile顺献。cmake和qmake支持跨平臺,cmake的做法是生成指定編譯器的工程文件薪伏,而qmake完全自成體系滚澜。
具體使用時,Linux下嫁怀,小工程可手動寫Makefile设捐,大工程用automake來幫你生成Makefile,要想跨平臺塘淑,就用cmake萝招。如果GUI用了Qt,也可以用qmake+*.pro來管理工程存捺,這也是跨平臺的槐沼。當然曙蒸,cmake中也有針對Qt的一些規(guī)則,并代替qmake幫你將qt相關的命令整理好了岗钩。另外纽窟,需要指出的是,make和cmake主要命令只有一條兼吓,make用于處理Makefile臂港,cmake用來轉(zhuǎn)譯CMakeLists.txt,而qmake是一個體系视搏,用于支撐一個編程環(huán)境审孽,它還包含除qmake之外的其它多條命令(比如uic,rcc,moc)浑娜。上個簡圖佑力,其中cl表示visual studio的編譯器,gcc表示linux下的編譯器.

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筋遭,一起剝皮案震驚了整個濱河市打颤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宛畦,老刑警劉巖瘸洛,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異次和,居然都是意外死亡反肋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門踏施,熙熙樓的掌柜王于貴愁眉苦臉地迎上來石蔗,“玉大人,你說我怎么就攤上這事畅形⊙啵” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵日熬,是天一觀的道長棍厌。 經(jīng)常有香客問我,道長竖席,這世上最難降的妖魔是什么耘纱? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮毕荐,結(jié)果婚禮上束析,老公的妹妹穿的比我還像新娘。我一直安慰自己憎亚,他們只是感情好员寇,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布弄慰。 她就那樣靜靜地躺著,像睡著了一般蝶锋。 火紅的嫁衣襯著肌膚如雪陆爽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天扳缕,我揣著相機與錄音墓陈,去河邊找鬼。 笑死第献,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的兔港。 我是一名探鬼主播庸毫,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼衫樊!你這毒婦竟也來了飒赃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤科侈,失蹤者是張志新(化名)和其女友劉穎载佳,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體臀栈,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡蔫慧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了权薯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姑躲。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖盟蚣,靈堂內(nèi)的尸體忽然破棺而出黍析,到底是詐尸還是另有隱情,我是刑警寧澤屎开,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布阐枣,位于F島的核電站,受9級特大地震影響奄抽,放射性物質(zhì)發(fā)生泄漏蔼两。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一如孝、第九天 我趴在偏房一處隱蔽的房頂上張望宪哩。 院中可真熱鬧,春花似錦第晰、人聲如沸锁孟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽品抽。三九已至储笑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間圆恤,已是汗流浹背突倍。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盆昙,地道東北人羽历。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像淡喜,于是被迫代替她去往敵國和親秕磷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361