第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GCC轉(zhuǎn)儲預(yù)處理器定義

GCC轉(zhuǎn)儲預(yù)處理器定義

C++
12345678_0001 2019-07-13 18:52:10
GCC/g+是否有從命令行轉(zhuǎn)儲其預(yù)處理器定義的方法?我是說像__GNUC__, __STDC__等等。
查看完整描述

3 回答

?
繁星淼淼

TA貢獻1775條經(jīng)驗 獲得超11個贊

是的,使用-E -dM選項而不是-c。示例(將它們輸出到stdout):

 gcc -dM -E - < /dev/null

C+

 g++ -dM -E -x c++ - < /dev/null

GCC手冊:

與正常輸出不同,為執(zhí)行預(yù)處理器(包括預(yù)定義宏)期間定義的所有宏生成一個‘#Defined’指令列表。這為您提供了一種查找預(yù)處理器版本中預(yù)定義的內(nèi)容的方法。假設(shè)您沒有文件foo.h,則命令

touch foo.h; cpp -dM foo.h

將顯示所有預(yù)定義的宏。

如果使用-dm而不使用-E選項,則-dm被解釋為-fdump-rtl-mach的同義詞。


查看完整回答
反對 回復(fù) 2019-07-13
?
萬千封印

TA貢獻1891條經(jīng)驗 獲得超3個贊

我通常是這樣做的:

$ gcc -dM -E - < /dev/null

注意,一些預(yù)處理器定義依賴于命令行選項-您可以通過將相關(guān)選項添加到上面的命令行來測試這些選項。例如,要查看默認情況下啟用了哪些SSE 3/SSE4選項:

$ gcc -dM -E - < /dev/null | grep SSE[34]#define __SSE3__ 1#define __SSSE3__ 1

然后比較一下-msse4具體如下:

$ gcc -dM -E -msse4 - < /dev/null | grep SSE[34]#define __SSE3__ 1#define __SSE4_1__ 1#define __SSE4_2__ 1#define __SSSE3__ 1

類似地,您可以看到兩組不同的命令行選項之間有哪些選項不同,例如,比較預(yù)處理器定義的優(yōu)化級別。-O0(無)和-O3(全部):

$ gcc -dM -E -O0 - < /dev/null > /tmp/O0.txt
$ gcc -dM -E -O3 - < /dev/null > /tmp/O3.txt
$ sdiff -s /tmp/O0.txt /tmp/O3.txt 
#define __NO_INLINE__ 1        <
                               > #define __OPTIMIZE__ 1


查看完整回答
反對 回復(fù) 2019-07-13
  • 3 回答
  • 0 關(guān)注
  • 633 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號