簡單點說,加上-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 執行編譯命...