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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个最简单的Makefile例子(转)

發布時間:2023/12/2 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个最简单的Makefile例子(转) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://hi.baidu.com/hellosim/blog/item/42e78341b40c3e8db2b7dce3.html
轉載請注明出處

1.hello.c

#include <stdio.h>
int main()
{
??? printf("Hello World!\n");
??? return 0;
}

2.Makefile

hello : hello.o
??? cc -o hello hello.o

hello.o : hello.c
??? cc -c hello.c

clean :?
??? rm hello.o

說明:cc -o hello hello.o前面是一個tab的空格

3.執行make,產生可執行文件hello

輸出如下:
cc -c hello.c
cc -o hello hello.o

4.執行make clean,刪除產生的中間文件hello.o

輸出如下:
rm hello.o


另轉:http://hi.baidu.com/s_rlzheng/blog/item/4bc10a06892e217d030881ef.html

??本來早就應該學Makefile了,只是我偷懶,現在才學呵呵^_^makefile的好處叫我說,老實說我也說不出什么之所以然來,但是可以肯定的是它是linux平臺的軟件工程師都要必備的知識^_^

一、程序的編譯及鏈接

????我們編譯程序,無非是想要得到一個可執行文件,而這個過程則是經過這兩步:

***.c->編譯->***.o->鏈接->可執行文件。即.c經過編譯得到.o文件,.o文件是一個中間文件,再對這些中間文件進行鏈接最終可得到可執行文件。

二、Makefile的規則

首先,來看一看Makefile的書寫規則:

target ... : prerequisites ...

??????????? command

??????????? ...

??????????? ...

??? target也就是一個目標文件,可以是.o文件,也可以是執行文件,還可以是一個標簽(Label)。

??? prerequisites就是,要生成那個target所需要的文件或是目標。

??? command也就是make需要執行的命令(任意的Shell命令)。這里要注意的是在命令前面要加上一個tab鍵,不是空格,是按一個tab鍵按出來的空格。

?????這是一個文件的依賴關系,也就是說,target這一個或多個的目標文件依賴于prerequisites中的文件,其生成規則定義在command中。說白一點就是說,prerequisites中如果有一個以上的文件比?target文件要新的話,command所定義的命令就會被執行。這就是Makefile的規則,也就是Makefile中最核心的內容。這是Makefile的主線和核心,但要寫好一個Makefile還得繼續努力。

三、一個最簡單的Makefile例子

如有一個工程,含有3個頭文件及四個c文件,那為了生成所需的可執行文件,這時的Makefile可以這樣寫:

test:main.o t1.o t2.o t3.o

?????gcc –o test main.o t1.o t2.o t3.o

main.o:main.c

?????gcc –c main.c

t1.o:t1.c t1.h

?????gcc –c t1.c

t2.o:t2.c t2.h

?????gcc –c t2.c

t3.o:t3.c t3.h

?????gcc –c t3.c

clean:

?????rm test main.o t1.o t2.o t3.o

到這里一個最簡單的makefile就寫好了,把它的名字保存為Makefile就可以了,這時你只要在終端敲一下make,它就自動幫你編譯鏈接了^_^如果敲入make clean,它將刪掉那些中間文件及可執行文件。

總結

以上是生活随笔為你收集整理的一个最简单的Makefile例子(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

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