makefile學習筆記

2021-08-22 05:58:21 字數 1963 閱讀 4860

使用變數時在其前面加上($)符號

變數的賦值(=)與變數還有值之間都不能有空格,否則不是自己想要的結果

命令前加反引號(就是esc下面的鍵)

例如 pwd=pwd

echo $pwd

效果和執行命令pwd一樣

if [表示式]; then #表示式和括號要有空格

.....

.....

else

.....

fi #結尾

#例如判斷乙個檔案是否存在,存在則列印檔案路徑,不存在則建立檔案

if [ -e a.c ]; then

echo "yes"

else

echo "no"

touch a.c

fi

for i in … #in後面的值為每次迴圈給i賦值

do #開始迴圈

…done #迴圈結束標誌

for i in 1 2 3 4 5

doecho $i

done

機構:

while [ ] ; do

…done

var=1

case $var in #開頭

1) echo "1" ;;

2) echo "2" ;; #記得加雙分號

esac #結尾語句

1,目標是最終要生成對的檔案

2、依賴是就是待編譯的原始檔

%號表示乙個或幾個字母,%.o表示所有的.o檔案

hello : hello.o a.o  #目標是hello檔案 依賴是hello.o a.o 但是原始檔沒有hellow.o和a.o,所有要繼續往下面推導

gcc -o $@ $^ #下面的執行完畢後得到hellow.o a.o檔案現在可以開始執行這條命令

%.o : %.c #推導到這裡 表示所有的.0檔案依賴所有的.c檔案,因為原始檔本來就是.c檔案,所有推導結束,執行下面的命令

gcc -o $@ -c $< #把所有的.c檔案編譯成.o檔案

clean : #偽目標

rm *.o hello

例如clean:

它後面是沒用檔案依賴的,在命令介面中,只有敲擊偽目標(make clean),偽目標下面的命令才可以執行

命令前面加@表示靜默的執行命令,就是在命令介面不顯示執行了什麼命令

?=表示前面沒有賦值過就給變數賦值

+=表示到變數後面追加內容 #注意?= 和+= 後面都必須要有空格

:= 大部分情況下和=相同 其實:=就是相當於c語言的=

= 變數的賦值看最後一次=號賦值(和c語言的=是有區別的)

$@ : 目標

<:依

賴第乙個

檔案,如

果是規則

則是所有

檔案(例

如< : 依賴第乙個檔案,如果是規則則是所有檔案(例如%.c 則

<:依

賴第乙個

檔案,如

果是規則

則是所有

檔案(例

如《表示所有檔案)

$^: 依賴的所有檔案集合

%.o:%.c

arm-linux-gcc -wall -o2 -c -o $@ $<

#$@ 表示%.o $《表示%.c

makefile學習筆記 makefile概述

20180411 makefile學習筆記 makefile概述 makefile主要是在unix下軟體編譯時寫的,window下一般不用 unix裡makefile做的事 相當於window裡ide所做的事 會不會寫makefile,從乙個側面說明了乙個人是否具備完成大型工程的能力。makefil...

Makefile學習筆記

makefile for boot asm nasm 定義變數 asmflags i include run qemu system i386 hdd boot.img boot.img boot.asm asm boot.asm f bin o boot.img install run clean...

Makefile學習筆記

本文為學習筆記,僅供參考,如有好的建議歡迎指出!makefile規則 目標檔案 依賴檔案 tab 命令 命令前必須有乙個tab exp test main.c gcc main.c o test 隱式規則 o c 同名匹配 變數 類似於c中的巨集,引用方式 arg 變數名 值 引用變數可在之後定義 ...