gcc D選項的作用

2021-06-28 15:30:09 字數 797 閱讀 9508

簡單點說,加上-d選項就是在編譯時增加對-d後面的巨集的定義。來看個簡單的例子吧,源程式(a.c)如下:

[cpp]

#include 

intmain(

intargc, 

char

*argv)    

編譯及輸出如下:

[root@test #9]#gcc -dmydebug -g -o a1 a.c       @1

[root@test #11]#./a1

test

hello world

[root@test #12]#gcc -ddebug -g -o a2 a.c           @2

[root@test #13]#./a2

hello world

[root@test #14]#gcc -g -o a3 a.c                            @3

[root@test #15]#./a3

hello world

可見,第2和第3條編譯指令的輸出結果是一樣的,為什麼呢?

先看@1,因為源程式中有條件判斷,是否定義了巨集「mydebug」,而該編譯指令中剛好帶了"mydebug",所以就輸出了「test";

接著看@2, 編譯指令中-d後是」debug「,這個針對」#ifdef mydebug"而言就是false,所以就不會輸出「test";

最後看@3, 編譯指令中無-d選項,所以也不會輸出」test"。

這樣做比較,相信大家都明白這個-d的含義了吧。不信,就親自動手試試吧。

gcc D選項的作用

gcc d選項在man中的說明如下 簡單點說,加上 d選項就是在編譯時增加對 d後面的巨集的定義。來看個簡單的例子吧,源程式 a.c 如下 cpp include intmain intargc,char argv 編譯及輸出如下 root test 9 gcc dmydebug g o a1 a....

gcc D選項的作用

簡單點說,加上 d選項就是在編譯時增加對 d後面的巨集的定義。來看個簡單的例子吧,源程式 a.c 如下 include int main int argc,char argv 編譯及輸出如下 root test 9 gcc dmydebug g o a1 a.c 1 root test 11 a1 ...

gcc D選項定義巨集

gcc的 d選項可以定義巨集。假設程式需要很多巨集,不可能這些巨集都在編譯器中定義,可以說比較重要的巨集才會放在gcc的d選項後邊。dname 定義巨集name,預設定義內容為字串 1 dname defn 定義巨集name,並且內容為defn 測試程式 include int main 執行編譯命...