一、gcc編譯器中使用:
-d macro=string,等價於在標頭檔案中定義:#define macro string。
例如:-d true=true,等價於:#define true true
-d macro,等價於在標頭檔案中定義:#define macro 1,實際上也達到了定義:#define macro的目的。
例如:-d linux,等價於:#define linux 1(與#define linux作用類似)。
--define-macro macro=string與-d macro=string作用相同。
-d後面可以連著跟變數(沒有空格)。例如-d macro可以寫為-dmacro
如:test.c 檔案
#include #include main()
1.編譯: gcc -o test test.c
執行: ./test
輸出: hello p2
2.編譯: gcc -o test test.c -d p1
執行: ./test
輸出: hello p1
二、在makefile中進行巨集定義-d
在makefile中我們可以通過巨集定義來控制源程式的編譯。只要在makefile中的cflags中通過選項-d來指定你於定義的巨集即可。
如:cflags += -d _yuqiang
在編譯的時候加上此選項就可以了: $(cc) $(cflags) $^ -o $@
defines += -d bvs_direction=$(bvs_direction) \
-d bvs_layout=$(bvs_layout) \
-d $(bvs_type)\
M 在Makefile中進行巨集定義 D
在源 裡面如果這樣是定義的 ifdef macroname 可選 endif 那在makefile裡面 gcc d macroname macrodef 或者gcc d macroname 這樣就定義了預處理巨集,編譯的時候可選 就會被編譯進去了。對於gcc編譯器,有如下選項 d macro str...
makefile 增加巨集定義
0.前言 從學習c語言開始就慢慢開始接觸makefile,查閱了很多的makefile的資料但總感覺沒有真正掌握makefile,如果自己動手寫乙個makefile總覺得非常吃力。所以特意借助部落格總結makefile的相關知識,通過例子說明makefile的具體用法。例說makefile索引博文 ...
Makefile進行巨集定義
實際上是gcc命令支援 d巨集定義,相當於c中的全域性 define gcc d name gcc d name definition makefile中可以定義變數 和巨集很像 但是是給make直譯器用的,對所編譯的檔案完全沒有作用。在makefile中我們可以通過巨集定義來控制源程式的編譯。只要...