歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 【Linux 學習筆記】關於Makefile

【Linux 學習筆記】關於Makefile

日期:2017/3/3 13:41:44   编辑:Linux技術
前一章體驗了一把Linux環境下的C語言編程。
不像Windows下,VS中一鍵F5看結果,保存個代碼萬事大吉。
其實,在Linux環境下才能真正體會到,從printf(“hello world”); 到 屏幕上出現這麼一行小字,計算機經歷了多少不為人知的辛酸歷程。
復習一下,首先,將c代碼進行編譯,產生.o目標文件,再將一個或者多個目標文件進行鏈接,生成一個可執行文件。
首先看一下,熟悉基本概念:
http://www.linuxidc.com/Linux/2014-08/105304.htm
網上看了許多關於makefile的教程,剛開始似懂非懂,直到找到了這篇某大神寫的博客,醍醐灌頂。
makefile學習(一):
基本概念,建議先看(二),回頭再看(一)更有收獲
http://blog.csdn.net/xgsilence/article/details/23593483
makefile學習(二):
對於依賴關系的檢索說的很清晰,我是看了他的文章才理解什麼是嵌套式檢索:
http://blog.csdn.net/xgsilence/article/details/26951361
還發現了比上一篇轉載 更好的基本操作匯總:
http://blog.csdn.net/xgsilence/article/details/18733267
這篇有一些對宏的解釋,看了些代碼,感覺很常用的樣子,可以學一學:
http://www.cnblogs.com/vamei/archive/2013/04/29/3051062.html
看了以上教程,差不多也明白makefile是個什麼作用了:
makefile是教練,所有的球員都是c代碼,球員上場以前都要先熱身,所以c代碼都要先編譯一下,然後教練告訴你怎麼配合怎麼打。
接下來,不想看鏈接的可以看我哔哔幾句:
上一章中我們寫了“加減乘除”四個函數,並且把聲明放進了math.h頭文件中,在main.c中我們包含了頭文件,並且調用了這四個函數。
這裡我們簡化一下:
A.c

B.c

head.h

main.c

現在有 A.c B.c head.h main.c 這四個文件
接下來就要寫makefile文件,把這四個文件聯系在一起
鍵入 vi makefile
錄入如下程序:

保存後退出,鍵入make
過程大概是這樣:
計算機收到要make一個hello執行文件的指令,於是去找make它要哪些原料,首先我們需要一個main.o,一看自己兜裡沒有,於是就去找,找到了“main.o:"這個DIY說明書,一看要做main.o首先要有main.c,一看兜裡有一個main.c,編譯一下~於是輸出第一句話:

這樣main.o就做好了,看看菜譜,下一個原料是A.o,操作是把A.c腌制(編譯)一下,於是一通操作:

數數看main.o A.o B.o 原料就位!下鍋!

熱氣騰騰的hello就做出來了!
執行一下

完美!!
看看我們的目錄下都生成了寫啥?
鍵入ls

酒足飯飽,打掃衛生!
鍵入 make clean

回歸到了原來的樣子。
這時我們打開
makefile學習(一):
http://blog.csdn.net/xgsilence/article/details/23593483
再看看基本概念。

一圖流。
相信走過這個流程之後,應該對最最基礎的Linux操作有了一定的了解。
PS: 吐槽一下插圖功能。。。之前做的很多圖由於直接復制粘貼都黑喂狗了。
Copyright © Linux教程網 All Rights Reserved