1. 程式人生 > >makefile中shell注意

makefile中shell注意

1、在Makfile中shell變數需要使用$$來引用,而$(A)是Makefile的變數

test:
    for i in 1 2 3 4 5 ; \
    do\
        echo $$i ; \   #使用 $(i) 的話輸出不正確
    done

2、makefile只能在target中呼叫shell,其他地方呼叫不出錯但是不會被執行

VAR="hello"
$(echo $(VAR))
rul:
	gcc - o main.exe mian.c

上面makefile執行不會列印VAR變數的值,因為echo不在target rul裡面

3、shell在makefile中執行時, 每一行shell都由一個單獨程序執行

,所以不同行的shell之間的變數值不能傳遞。為此寫makefile時,不管shell有多長都要寫在一行,這要是很多makefile中有很多行都是以"; "結尾的。

SUBDIR=src example
all:
    @for subdir in $(SUBDIR);  \
    do \
      echo "building ";  \
    done

4、makfeil中賦值符號"="兩邊允許空格,但是shell指令碼的不允許有空格;

5、參考:
https://blog.csdn.net/groundhappy/article/details/52798234