Makefile進行巨集定義

2021-07-04 05:47:16 字數 746 閱讀 5877

實際上是gcc命令支援-d巨集定義,相當於c中的全域性#define:

gcc -d name

gcc -d name=definition

makefile中可以定義變數(和巨集很像),但是是給make直譯器用的,對所編譯的檔案完全沒有作用。

在makefile中我們可以通過巨集定義來控制源程式的編譯。只要在makefile中的cflags中通過選項-d來指定你於定義的巨集即可。

如:cflags += -d _yuqiang

在編譯的時候加上此選項就可以了: $(cc) $(cflags) $^ -o $@ 

下面是我寫的乙個測試檔案:

例如:

makefile檔案內容為:

cc = gccrm = rm

cflags += -d _yuqiang

all:$(targets)

$(targets):main.c$(cc) $(cflags) $^ -o $@

clean:-$(rm) -f *.o-$(rm) -f $(targets)

main.c檔案的內容為:

#includeint main()

在埠中輸入  

make clean all

然後輸入 

helloyu qiang, how are you?

Makefile中進行巨集定義

實際上是gcc命令支援 d巨集定義,相當於c中的全域性 define gcc d name gcc d name definition makefile中可以定義變數 和巨集很像 但是是給make直譯器用的,對所編譯的檔案完全沒有作用。mstar 巨集定義方式 字串定義方式和值定義方式 cc tvo...

Makefile中用巨集定義進行條件編譯

在源 裡面如果這樣是定義的 ifdef macroname 可選 endif 那在makefile裡面 gcc d macroname macrodef 或者 gcc d macroname 這樣就定義了預處理巨集,編譯的時候可選 就會被編譯進去了。對於gcc編譯器,有如下選項 d macro st...

M 在Makefile中進行巨集定義 D

在源 裡面如果這樣是定義的 ifdef macroname 可選 endif 那在makefile裡面 gcc d macroname macrodef 或者gcc d macroname 這樣就定義了預處理巨集,編譯的時候可選 就會被編譯進去了。對於gcc編譯器,有如下選項 d macro str...