Makefile 巨集定義 D

2021-10-24 20:24:04 字數 944 閱讀 6146

一、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中我們可以通過巨集定義來控制源程式的編譯。只要...