Clang 幫助手冊翻譯- OPTIONS (學習使用)

Name:

? ? clang - C草丧、C++媳维、 Object 等語言的編譯器

SYNOPSIS: 概述

clang [option] filename ....

DESCRIPTION: 描述

clang 是一個包含了 預編譯东跪、語法分析茶袒、編譯優(yōu)化划鸽、代碼生成(個人理解語法樹冗恨?(AST)\中間代碼IR?)檩淋、程序集芬为、鏈接的 C萄金、C++蟀悦、Object-C的編譯器。在整個鏈接過程完成之前可以通過一些配置來停止在某個過程氧敢。由于clang是一款高度集成的編譯器日戈,理解其中具體的編譯階段是非常重要的,理解怎么調(diào)用它孙乖,其中有以下幾個階段:

Driver (驅(qū)動):?

clang 實際上是一個小的驅(qū)動程序浙炼,通過控制其他如編譯器份氧、匯編器、鏈接器的一個綜合執(zhí)行工具弯屈。通常你不會和驅(qū)動打交道蜗帜,但是你可以通過它來使用其他工具。

PreProcessing(預編譯):

? ? 這個階段會進行詞法解析资厉、宏定義展開 #include 頭文件展開以控制另一些預編譯的指令厅缺,這個階段輸出的文件格式是 .i(C), .ii(C++), .mi(Object-C) 或者 .mii(Object-C++)。

Parsing and Semantic Analysis(句法和語法解析):

? ? 這個階段分析輸入文件宴偿、把預編譯階段的tokens 詞 轉(zhuǎn)換成成語法樹(AST). ?在語法樹格式下湘捎,就可以用語法解析規(guī)則來確定表達式或者代碼段是否是正確格式。這個階段負責生產(chǎn)大部分警告或者錯誤窄刘。這個階段的輸出就是語法樹

Code Generation and Optimization(中間碼生產(chǎn)和優(yōu)化): ? ?

? ? 這個階段將AST 轉(zhuǎn)換成低層級的中間碼形式(為人熟知的LLVM IR)窥妇,最終生產(chǎn)機械碼。這個階段負責針對中間碼進行優(yōu)化然后轉(zhuǎn)換生產(chǎn)具體的目標代碼娩践。這個階段輸出的文件格式是 .s, 或者叫程序集活翩。(程序集概念這個時候不太明白)

clang也支持使用集成的匯編程序,其中代碼生成器會直接生成目標程序翻伺,這就會省掉生成.s文件或者目標程序集

Assembler(匯編):

? ? 這個階段運行目標匯編器者將編譯器輸出的文件(理解就是上一步生成的.s或者程序集)轉(zhuǎn)換為目標程序纱新。這個階段生成的文件后綴為.o或者是目標文件

Linker(鏈接):

? ? 這個階段運行目標鏈接器去合并多個目標程序成一個可執(zhí)行文件或者動態(tài)庫。這個階段輸出成為a.out穆趴,.dylib或者.so文件


一些參數(shù)含義可以在這里搜索到脸爱,應該是需要翻墻。

OPTIONS

?可選的階段(參數(shù)):

? ? -E ? 運行 預編譯階段

? ? -fsyntax-only 運行預編譯未妹、語法機洗和類型檢查

? ? -S 運行前面的階段以及生成和優(yōu)化目標代碼簿废,生成程序集文件

? ? -c 運行上述所有的階段,加上匯編器络它,生成目標.o文件

? ? 沒有選擇任何控制階段(參數(shù)): 如果沒有選擇任何參數(shù)選項族檬,執(zhí)行上述所有的階段,并且進行連接生成可執(zhí)行文件或者共享庫(動態(tài)共享庫化戳?)

? ? 語言和模式可選參數(shù):

? ? ?-x <language> 后續(xù)文件視為支持特定類型的標準語言 ??

? ? ?-std=<standard> 編譯器支持的標準語言

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?支持C語言的值有:

? ? ? C89单料、C90,iso9899:1990 ? 点楼。扫尖。。 (后面太多的標注語言類型掠廓,不一一列出了换怖,沒什么太大意義。)

? ? ? ? C默認的標準語言是gnu11蟀瞧,除了PS4之外,它默認的是gnu99

? ? ? ?支持的C++語言標準: ?c++98沉颂、c++03 ?....

? ? ? ? C++ 默認支持的是gnu++14

? ? ? ? OpenCl支持的語言:Opencl1.0条摸、Opencl1.1...

? ? ? ? OpenCl默認支持的是openCl1.0.


? ? ? ? -stdlib=<libary> : 指定C++標準庫的,支持 libstdc++和 libc++铸屉。缺省使用平臺自己默認的庫钉蒲。

? ? ? ? -rtlib=<library>: 指定編譯器運行時庫;支持libgcc 和compiler-rt彻坛,缺省使用平臺默認

? ? ? ? -ansi ?和 -std=c89一樣(單獨列出來有點沒頭沒腦的子巾,為了方便還是妥協(xié)因素?)

? ? ? ? -ObjeC, -ObjeC++: ? 源文件是 ObjectC 和ObjectC++

? ? ? ? -trigraphs: 開啟三字符和雙字符(自行google了解)

? ? ? ? -ffreestanding: ?是否是標準庫不存在的的環(huán)境(設計到操作系統(tǒng)小压,有點深线梗,搞不明白)。

????????-fno-builtin: 禁止優(yōu)化內(nèi)建函數(shù)如 strlen()和malloc()怠益。

????????-fmath-errno: 調(diào)用標準數(shù)學函數(shù)需要檢測是否會發(fā)生錯誤

? ? ? ? -fpascal-strings: 支持pascal-style 格式字符串"\pfoo"

????????-fms-extensions:支持Microsoft 擴展(還是微軟牛 ?-_-)

????????-fmsc-version=: _MSC_VER微軟編譯器版本宏仪搔,默認是1300

? ? ? ? ?-fborland-extensions: 支持 borland(一家公司)的擴展

? ? ? ? -fwritable-strings: 支持字c符串可修改選項,具體可以看看這段代碼蜻牢,使用clang 編譯時候加上和不加上這個選項會有不同效果-_-!

? ? ? ? -flax-vector-conversions: 允許隱式向量轉(zhuǎn)換的松散規(guī)則檢查

? ? ? ? -fblocks: 是蘋果的blocks 被識別

? ? ? ? -fobjc-abi-version=version: 選擇Object-C ABI版本烤咧,可用的版本1(不穩(wěn)定ABI),2(穩(wěn)定的ABI 1)抢呆,3(穩(wěn)定的ABI 2)(ABI 可以知乎上搜搜答案煮嫌,有些回答的挺好)

? ? ? ? -fobjc-nonfragile-abi-version=<version>:默認選擇Object-C穩(wěn)定版本的ABI,這個僅會用于Object-C ABI

? ? ? ? -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi: 可以使用Object-C 穩(wěn)定的ABI抱虐,在對應的平臺上是默認的ABI昌阿,-fno 與之相反。

內(nèi)容翻譯的時候才發(fā)現(xiàn)不懂的內(nèi)容太多恳邀,耗時在意料之外懦冰。?TargetSelectionOptions 下一篇繼續(xù)翻譯!

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谣沸,一起剝皮案震驚了整個濱河市刷钢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乳附,老刑警劉巖内地,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赋除,居然都是意外死亡阱缓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門贤重,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茬祷,“玉大人,你說我怎么就攤上這事并蝗〖婪福” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵滚停,是天一觀的道長沃粗。 經(jīng)常有香客問我,道長键畴,這世上最難降的妖魔是什么最盅? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮起惕,結(jié)果婚禮上涡贱,老公的妹妹穿的比我還像新娘。我一直安慰自己惹想,他們只是感情好问词,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘀粱,像睡著了一般激挪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锋叨,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天垄分,我揣著相機與錄音,去河邊找鬼娃磺。 笑死薄湿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的偷卧。 我是一名探鬼主播嘿般,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼涯冠!你這毒婦竟也來了炉奴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤蛇更,失蹤者是張志新(化名)和其女友劉穎瞻赶,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體派任,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡砸逊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了掌逛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片师逸。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖豆混,靈堂內(nèi)的尸體忽然破棺而出篓像,到底是詐尸還是另有隱情动知,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布员辩,位于F島的核電站盒粮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏奠滑。R本人自食惡果不足惜丹皱,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宋税。 院中可真熱鬧摊崭,春花似錦、人聲如沸杰赛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淆攻。三九已至阔墩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓶珊,已是汗流浹背啸箫。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伞芹,地道東北人忘苛。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像唱较,于是被迫代替她去往敵國和親扎唾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容