Makefile中進行巨集定義

2021-09-06 21:13:16 字數 743 閱讀 5441

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

gcc -d name

gcc -d name=definition

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

mstar:巨集定義方式:字串定義方式和值定義方式

cc_tvopts += -dms_board_type_sel=$(board_type_sel)

cc_tvopts += -dms_sw_cus_sel=sw_config_trunk_atvmm

cc_tvopts += -denable_cape=0

cc_tvopts += -dms_sw_test=\"videocon.bin\"

cc_tvopts += -dms_sw_test=\"$\"

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

如:cflags += -d _yuqiang

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

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

例如:

makefile檔案內容為:

main.c檔案的內容為:

hello yu qiang, how are you?

M 在Makefile中進行巨集定義 D

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

Makefile進行巨集定義

實際上是gcc命令支援 d巨集定義,相當於c中的全域性 define gcc d name gcc d name definition makefile中可以定義變數 和巨集很像 但是是給make直譯器用的,對所編譯的檔案完全沒有作用。在makefile中我們可以通過巨集定義來控制源程式的編譯。只要...

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

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