日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux编程——入门级Makefile文件编写

發布時間:2025/3/21 linux 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux编程——入门级Makefile文件编写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

1.在Linux開發環境中,編寫Makefile文件是一個必須的技能,雖然現在有好多IDE可以自動生成所需要的Makefile文件,但有時能看懂Makefile文件也是更好的了解項目的編譯過程。
2.我在這里只演示入門級Makefile文件的編寫,我使用的系統是Ubuntu16.04這個版本,使用的演示源碼語言是C++。

源文件準備

1.假設我們現在有main.cpp,other.cpp,other.h這三個源文件,其中main.cpp是主函數,它調用了other.h里面的函數。
main.cpp代碼如下:

#include "other.h"int main(void) { int i = add(45,50);cout << "i = " << i << endl;return 0; }

other.cpp

#include "other.h"int add(int i, int j) {return i+j; }

other.h

#ifndef OTHER_H #define OTHER_H #include <iostream>using namespace std;int add(int, int);#endif // OTHER_H

2.如果現在我們使用g++進行編譯,則是直接生成用-o編譯,生成可執行文件.

g++ main.cpp other.cpp -o add

然后運行可執行文件:

./add


3.如是只有一兩個源文件,這樣編譯是沒有問題的,但有幾十個或者上百個時,這樣編譯是不現實的,那就要Makefile文件做這一步。
(1)Makefile文件的編寫規則是:

規則:依賴命令 規則:依賴命令

(2)那用Makefile編譯上面的源碼的步驟是:
A、在存放源碼的路徑下新建一個Makefile文件,不要任何后綴,用vim打開。
B、按上面給的規則寫好Makefile文件:

add:main.cpp other.cppg++ main.cpp other.cpp -o addtest:./add clean:rm add

C、保存,退出,在當前目錄下執行make這個命令:

可以看到,在當前目錄下多了一個add的可執行文件,返回看上面的makefile的代碼,我寫了三個規則,但Make是默認只執行第一個規則而已。
接下我執行:

make test

執行了第二條規則,以此類推,要執行第三條規則,則在make后面加上規則名。

D.依賴項的意思是,如果依賴的其中的文件有更新則重新編譯,但只編譯有變化的文件。

4.這只是簡單的介紹了Makefile文件的編寫方式,那真正項目中的Makefile文件是這樣子的,會使用一些通配符,Makefile文件能調用的庫函數等,但原理不變。

EXE = subject #給變量賦值#src放源代碼文件,object是放項目的路徑 SUBDIR = src object#用迭代器把所有的子目錄下的cpp找到 CXX_SURCES = $(foreach dir,$(SUBDIR),$(wildcard $(dir))/*.cpp)#patsubst函數把列表的文件替換 CXX_OBJECTS=$(patsubst %.cpp,%.o,$(CXX_SURCES))#得到.d文件 DEP_FILES=$(patsubst %.cpp,%.d,$(CXX_SURCES))$(EXE):$(CXX_OBJECTS) #編譯命令g++ $(CXX_OBJECTS) -o $(EXE)%.o:%.cpp #鏈接命令g++ -c -MMD $< -o $@ #$<(依賴項列表) $@(當前規則) -MMD(生成.d文件為生.h的依賴)-include $(DEP_FILES) #簡化頭文件依賴cleran:rm -rf $(EXE) $(DEP_FILES) $(CXX_OBJECTS)

總結

以上是生活随笔為你收集整理的Linux编程——入门级Makefile文件编写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天干天天插天天操 | 在线午夜av | 国产精品91一区 | 亚洲天堂av网站 | av不卡免费在线 | 国产精品成人一区二区三区电影毛片 | 美女屁股眼视频网站 | 欧美成人做爰猛烈床戏 | 女主播在线观看 | 成人作爱视频 | 亚洲精品在线观看免费 | 制服丝袜av一区二区三区下载 | 狂躁美女大bbbbbb黑人 | 好妞色妞国产在线视频 | 国产精品视频一二三区 | 欧美性生交片4 | 亚洲色图欧美自拍 | 少妇人妻互换不带套 | 极品美女啪啪 | 欧美成人r级一区二区三区 中文无码一区二区三区在线观看 | 国产不卡精品视频 | 美国免费高清电影在线观看 | 精品少妇一区二区三区在线观看 | 欧美一级二级在线观看 | 国产理论片在线观看 | 国产xxxx做受视频 | 毛片在线网站 | 久草网视频 | 中国人与拘一级毛片 | 成人毛片100部免费看 | 国产精品一区免费观看 | 日韩精品一区二区三区四区五区 | 91黄在线看 | 影音先锋欧美在线 | 夜夜嗨av一区二区三区四区 | 日韩在线国产精品 | 中文字幕av免费 | 性饥渴的农村熟妇 | 色一情一乱一伦一区二区三区 | 国产精品无码人妻一区二区在线 | 无码人妻精品一区二区三区温州 | 男朋友是消防员第一季 | 欧美人与性囗牲恔配 | 69sese| 日剧再来一次第十集 | 无码精品黑人一区二区三区 | 黄色99视频 | 美女88av| 欧美一级免费在线观看 | 欧美一二 | 五十路息子 | 宅男午夜影院 | 久久成年 | av在线免费播放 | 日韩国产欧美综合 | 台湾极品xxx少妇 | 中文文字幕文字幕高清 | www.com操| 亚洲精品久久久中文字幕 | 日本爽爽爽爽爽爽在线观看免 | 大黄一级片| 欧美人喂奶吃大乳 | 跪求黄色网址 | 麻豆影视在线观看 | 精品久久久久亚洲 | 噼里啪啦动漫高清在线观看 | 小泽玛丽亚在线观看 | 密臀av| 韩国精品一区二区三区 | 多啪啪免费视频 | 91午夜在线 | 一级片高清| 亚洲美女性视频 | 国产精品xx| 欧美日韩一区二区在线播放 | 91亚洲网站 | 日日操日日干 | 玖玖视频在线 | 欧美在线高清 | 少妇人妻真实偷人精品视频 | 黄色视屏免费 | 二区在线视频 | 天天干人人 | 日本护士体内she精2xxx | 国产一二三 | 涩涩涩在线观看 | 青草综合 | 蜜桃成熟时李丽珍在线观看 | 丰满少妇久久久久久久 | 国产真实的和子乱拍在线观看 | 高清中文字幕 | 国产黄色影院 | 欧美黄在线观看 | 日本午夜免费福利视频 | 黑帮大佬和我的365日第二部 | 少妇诱惑av | av综合久久| 艳母在线视频 | www.精品视频|