最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++項(xiàng)目實(shí)戰(zhàn)之makefile使用

 更新時(shí)間:2024年05月01日 08:26:42   作者:存錢買房的陳一言  
這篇文章主要介紹了C++項(xiàng)目實(shí)戰(zhàn)之makefile使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

makefile簡(jiǎn)介

一個(gè)工程中的源文件不計(jì)其數(shù)(一個(gè)項(xiàng)目有有很多的文件),現(xiàn)在的項(xiàng)目基本都是按模塊進(jìn)行劃分的,而這些模塊存放在若干目錄中。

makefile中定義了一系列的規(guī)則(這些規(guī)則定義了一系列如何編譯程序的操作,比如哪些文件需要編譯、哪些臨時(shí)文件需要及時(shí)的清除等),如此以來我們只需要通過make命令就可以一鍵編譯源程序了。

所以常常說makefile帶來的最大的好處就是"自動(dòng)化編譯",因?yàn)橹恍枰粋€(gè)make命令,整個(gè)工程完全自動(dòng)編譯,極大的提高了軟件開發(fā)效率。(以上用于可能不規(guī)范,是作者的理解)

make簡(jiǎn)介

make是一個(gè)命令工具,它能夠解釋Makefile文件中的指令,一般來說大多數(shù)IDE都具備這樣的功能。

makefile的編寫的規(guī)則

makefile文件的命名:

makefile 或者 Makefile

makefile的規(guī)則:

三要素:目標(biāo)   依賴    命令

格式==》

  • 目標(biāo):依賴
  • (TAB)命令

目標(biāo):最終要生成的文件(偽目標(biāo)除外) 

依賴:生成目標(biāo)所需要的文件或目標(biāo)(這里的目標(biāo)是子目標(biāo))

命令:通過執(zhí)行命令來操作依賴來生成目標(biāo)

我們來看一個(gè)例子

當(dāng)前文件夾有如下5個(gè)文件

第一個(gè)版本的Makefile 

第二個(gè)版本我們添加以下子目標(biāo)

添加子目標(biāo)的目的:

  • make工作原理1

命令在執(zhí)行前,需要先檢查規(guī)則中的依賴是否存在

  • 如果存在,則執(zhí)行命令
  • 如果不存在,則向下搜索,檢查有沒有一個(gè)規(guī)則的目標(biāo)是這個(gè)依賴,
  • 如果存在則先執(zhí)行這個(gè)子目標(biāo),先生成這個(gè)最終目標(biāo)所需的依賴,
  • 那么我們有了依賴才可以生成最終目標(biāo)

collect2: error: ld returned 1 exit status   

//為毛會(huì)出現(xiàn)這個(gè)問題,好像是子啊制作動(dòng)態(tài)庫(kù)的時(shí)候才會(huì)用這個(gè)問題

第三個(gè)版本我們通過自定義變量的方式

第四個(gè)版本我們通過makfile中的自動(dòng)變量

第五個(gè)版本使用函數(shù)

makefile中主要使用的只要兩個(gè)函數(shù)

wildcard  ==》查找指定目錄下的指定文件  

src=$(wildcard ./*.c)

patsubst  ==》將指定目錄下的什么文件后綴進(jìn)行替換

obj=$(pastsubst ./%.c,./%.o,$(src))

第6個(gè)版本 加上仿函數(shù)

加上仿函數(shù)的目的:

對(duì)于makefile而言下面的規(guī)則全都是最終的目標(biāo)提供服務(wù)的。

如果不是最終規(guī)則(第一個(gè)規(guī)則)所需要的依賴那么不會(huì)區(qū)執(zhí)行。

但是通過偽目標(biāo)就可以打破這個(gè)約定,一定會(huì)執(zhí)行

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++實(shí)現(xiàn)簡(jiǎn)單學(xué)生信息管理系統(tǒng)

    C++實(shí)現(xiàn)簡(jiǎn)單學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C/C++多態(tài)深入探究原理

    C/C++多態(tài)深入探究原理

    多態(tài)按字面的意思就是多種形態(tài)。當(dāng)類之間存在層次結(jié)構(gòu),并且類之間是通過繼承關(guān)聯(lián)時(shí),就會(huì)用到多態(tài)。C++?多態(tài)意味著調(diào)用成員函數(shù)時(shí),會(huì)根據(jù)調(diào)用函數(shù)的對(duì)象的類型來執(zhí)行不同的函數(shù)
    2022-06-06
  • 在vscode中快速新建html文件的2種方法總結(jié)

    在vscode中快速新建html文件的2種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于在vscode中快速新建html文件的2種方法,以及如何快速打開HTML文件查看編輯效果的方法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • OpenCV實(shí)現(xiàn)視頻綠幕背景替換功能的示例代碼

    OpenCV實(shí)現(xiàn)視頻綠幕背景替換功能的示例代碼

    這篇文章主要介紹了如何利用OpenCV實(shí)現(xiàn)視頻綠幕背景替換功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)OpenCV有一定的幫助,感興趣的可以學(xué)習(xí)一下
    2023-02-02
  • 解析在Direct2D中畫Bezier曲線的實(shí)現(xiàn)方法

    解析在Direct2D中畫Bezier曲線的實(shí)現(xiàn)方法

    本篇文章是對(duì)在Direct2D中畫Bezier曲線的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C語(yǔ)言實(shí)現(xiàn)生成新春福字的示例詳解

    C語(yǔ)言實(shí)現(xiàn)生成新春福字的示例詳解

    這篇文章主要介紹了如何利用C語(yǔ)言實(shí)現(xiàn)生成各個(gè)字體的新春福字,再也不用擔(dān)心支付寶掃福找不到圖片了,感興趣的同學(xué)可以跟隨小編學(xué)習(xí)一下
    2022-01-01
  • 關(guān)于C++中vector的兩個(gè)小tips分享

    關(guān)于C++中vector的兩個(gè)小tips分享

    這篇文章主要給大家介紹了關(guān)于C++中vector的兩個(gè)小tips,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • C語(yǔ)言中形參和實(shí)參的區(qū)別小結(jié)

    C語(yǔ)言中形參和實(shí)參的區(qū)別小結(jié)

    本文介紹了C語(yǔ)言中形參和實(shí)參的區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-12-12
  • 詳解C語(yǔ)言中未定義行為

    詳解C語(yǔ)言中未定義行為

    C語(yǔ)言中的未定義行為是指程序執(zhí)行違反標(biāo)準(zhǔn)時(shí),行為未指定的情況,未定義行為可能導(dǎo)致程序崩潰、數(shù)據(jù)損壞和不可預(yù)測(cè)的結(jié)果,下面就來介紹幾種常見未定義行為的例子,感興趣的可以了解一下
    2026-01-01
  • 利用Matlab實(shí)現(xiàn)陰影柱狀圖的繪制

    利用Matlab實(shí)現(xiàn)陰影柱狀圖的繪制

    陰影柱狀圖繪制的代碼MATHWORKS上也有,不過是生成圖片后,識(shí)別圖像上不同顏色塊并直接修改像素生成陰影線。這樣的生成方式不可逆且自由度較低,所以本文為大家?guī)淼氖且粋€(gè)直接畫線條填充的硬畫版本,希望有所幫助
    2022-09-09

最新評(píng)論

沭阳县| 太白县| 和龙市| 清水县| 通道| 甘孜县| 秭归县| 永济市| 平果县| 淮北市| 池州市| 探索| 白沙| 平凉市| 武平县| 射阳县| 翁源县| 广德县| 彰武县| 扶沟县| 肇庆市| 高邮市| 米泉市| 额济纳旗| 克山县| 内丘县| 海晏县| 道真| 隆昌县| 连江县| 曲松县| 绍兴市| 宁强县| 句容市| 雅安市| 耿马| 项城市| 永修县| 道孚县| 秀山| 玉田县|