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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Makefile工程管理语法与使用技巧

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Makefile工程管理语法与使用技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



??

??使用GNU Make工具來管理程序是每個Linux工程師必須掌握的技能。Make能夠使整個程序的編譯、鏈接只需要一個命令(make)就可以完成。

??

? ? ? ?Make的工作主要依賴于一個叫為Makefile的件。Makefile文件描述了整個程序的編譯,連接等規則。其中包括:工程中的哪些源文件需要編譯以及如何編譯,如何最后產生我們想要得可執行文件。


? ? ?Makefile中最重要的組成部分是“規則”
規則:
用于說明如何生成目標文件,規則的格式如下:
targets?:?prerequisites
????command
目標?依賴?命令
特別提供:命令需要使用【
TAB】鍵空格

????目標?依賴?命令?

例如:
led.bin: led.o
????arm-linux-ld -Tled.lds -o led.elf led.o


Makefile中把那些只包含命令,沒有任何依
目標稱為偽目標”(phony targets)

.PHONY : clean\

clean:

????rm -rf ?hello main,o func.o

其中.PHONY ?的作用是將clean生成為偽目標


最終目標:

1.當一個makefile中有多條規則時,如何單獨執行某條
規則?make后面加某一個規則的目標
2.?如果用戶沒有指定執行某一條規則,make會默認
執行
makefile中的第1條規則,而這條規則中的目標稱之
為:
最終目標


變量:

使用變量前:
app1: app1.o func1.o func2.o
????gcc app1.o func1.o func2.o -o app1
app2: app2.o func1.o func2.o
????gcc app2.o func1.o func2.o -o app2

使用變量后:
obj=func1.o func2.o
app1: app1.o $(obj)
????gcc app1.o $(obj) -o app1
app2: app2.o $(obj)
????gcc app2.o $(obj) -o app2


makefile中,用戶除了可以自己定義變量外,還可以使用
存在
系統已經定義好的默認變量。
1.?$^:代表所有的依賴文件
2,?$@:代表目標
3.?$<:代表第一個依賴文件

使用前:
led.o : led.S
????arm-linux-gcc -g –o led.o -c led.S

使用后

led.o : led.S

????arm-linux-gcc -g -o ?$@ ?-c ?$^


通用規則:

????當一個makefile中有許多類似的規則時,如
何將這些規則合并為一條通用規則?

????


例如:

led.o : led.S
????arm-linux-gcc -g –o led.o -c led.S

key.o : key.S
????arm-linux-gcc -g –o key.o -c key.S

uart.o : uart.S
????arm-linux-gcc -g –o uart.o -c uart.S

上面三個規則中目標和依賴只有后綴不一樣,那么我們可以用%代替前綴

%.o : %.S

????arm-linux-gcc -g –o %.o -c %.S

就代替了上面三個規則,簡單實用.


?為了節省時間,有時候我們需要去掉回顯,在命令前加一個@符號,就可以去掉該命令的回顯功能.例如:

hello: hello.c
????@gcc hello.c –o hello
@:
取消回顯?(演示)

????

文件名:

make命令默認在當前目錄下尋找名字為makefile或者Makefile的工程文件,當名字不為這兩者之一時,可以使用如下方法指定:

? ? ? ? ?

???? ? ? ?make?-f?文件名

總結

以上是生活随笔為你收集整理的Makefile工程管理语法与使用技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

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