一個(gè)工程中的源文件不計(jì)其數(shù),按期類型、功能、模塊分別放在若干個(gè)文件中,MakeFile文件定義了一系列的規(guī)則來制定哪些文件需先要編譯、哪些文案需要后編譯、哪些文件需要重新編譯、甚至于進(jìn)行更加復(fù)雜的操作,因?yàn)镸akefile文件就像是一個(gè)shell腳本一樣,也可以執(zhí)行操作系統(tǒng)的命令
Makefile 帶來的好處就是 自動(dòng)化編譯,一旦寫好,只需要一個(gè)make命令,整個(gè)工程完全自動(dòng)化編譯,極大提高了軟件開發(fā)效率,make是一個(gè)命令工具,是一個(gè)解釋Makefile文件中指令的命令工具,一般來說,大多數(shù)的IDE都有這個(gè)命令,例如Delphi的make、Visual C++的nmaek、Linux下Gun的make。
vim Makefile
app:add.cpp div.cpp mutil.cpp subtract.cpp
gcc -lstdc++ add.cpp div.cpp mutil.cpp subtract.cpp main.cpp -o app
Makefile
app:add.o div.o mutil.o subtract.o main.o
gcc -lstdc++ add.o div.o mutil.o subtract.o main.o -o app
add.o:add.cpp
gcc -c add.cpp -o add.o
div.o:div.cpp
gcc -c div.cpp -o div.o
mutil.o:mutil.cpp
gcc -c mutil.cpp -o mutil.o
subtract.o:subtract.cpp
gcc -c subtract.cpp -o subtract.o
main.o:main.cpp
gcc -c main.cpp -o main.o
5.Makefile中的變量自定義變量
變量名 = 變量值 var = hello 獲取變量:$var
預(yù)定義變量
AR:歸檔維護(hù)程序的名稱,默認(rèn)為ar
CC:c編譯器的名稱,morenwcc
CXX:C++b編譯器的名稱,默認(rèn)為g++
$@:目標(biāo)的完整名稱
$<:第一個(gè)依賴文件的名稱
$^:所有依賴文件
獲取變量的值
$()變量名
自動(dòng)變量只能在規(guī)則的命令中使用
app:main.c a.c b.c
$(CC) -c $^ -o $@
示例:
#定義變量
src=add.o div.o mutil.o subtract.o main.o
target=app
$(target):$(src)
$(CC) -lstdc++ $(src) -o $(target)
add.o:add.cpp
gcc -c add.cpp -o add.o
div.o:div.cpp
gcc -c div.cpp -o div.o
mutil.o:mutil.cpp
gcc -c mutil.cpp -o mutil.o
subtract.o:subtract.cpp
gcc -c subtract.cpp -o subtract.o
main.o:main.cpp
gcc -c main.cpp -o main.o
6.模式匹配%.o:%.c
%:通配符,匹配一個(gè)字符串
兩個(gè)%之間匹配的是同一個(gè)字符串
#定義變量
src=add.o div.o mutil.o subtract.o main.o
target=app
$(target):$(src)
$(CC) -lstdc++ $(src) -o $(target)
#通配指令
%.o:%.c
$(CC) -c $< -o $@
7.函數(shù)$(wildcard PATTERN…)
$(patsubst pattern, replacement,text)
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
分享名稱:Makefile詳解-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://jinyejixie.com/article18/hgsdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、軟件開發(fā)、網(wǎng)站制作、定制網(wǎng)站、云服務(wù)器、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容