Clang 帮助手册翻译- OPTIONS (学习使用)

Name:

    clang - C、C++、 Object 等语言的编译器

SYNOPSIS: 概述

clang [option] filename ....

DESCRIPTION: 描述

clang 是一个包含了 预编译、语法分析、编译优化、代码生成(个人理解语法树?(AST)\中间代码IR?)、程序集、链接的 C、C++、Object-C的编译器。在整个链接过程完成之前可以通过一些配置来停止在某个过程。由于clang是一款高度集成的编译器,理解其中具体的编译阶段是非常重要的,理解怎么调用它,其中有以下几个阶段:

Driver (驱动): 

clang 实际上是一个小的驱动程序,通过控制其他如编译器、汇编器、链接器的一个综合执行工具。通常你不会和驱动打交道,但是你可以通过它来使用其他工具。

PreProcessing(预编译):

    这个阶段会进行词法解析、宏定义展开 #include 头文件展开以控制另一些预编译的指令,这个阶段输出的文件格式是 .i(C), .ii(C++), .mi(Object-C) 或者 .mii(Object-C++)。

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

    这个阶段分析输入文件、把预编译阶段的tokens 词 转换成成语法树(AST).  在语法树格式下,就可以用语法解析规则来确定表达式或者代码段是否是正确格式。这个阶段负责生产大部分警告或者错误。这个阶段的输出就是语法树

Code Generation and Optimization(中间码生产和优化):    

    这个阶段将AST 转换成低层级的中间码形式(为人熟知的LLVM IR),最终生产机械码。这个阶段负责针对中间码进行优化然后转换生产具体的目标代码。这个阶段输出的文件格式是 .s, 或者叫程序集。(程序集概念这个时候不太明白)

clang也支持使用集成的汇编程序,其中代码生成器会直接生成目标程序,这就会省掉生成.s文件或者目标程序集

Assembler(汇编):

    这个阶段运行目标汇编器者将编译器输出的文件(理解就是上一步生成的.s或者程序集)转换为目标程序。这个阶段生成的文件后缀为.o或者是目标文件

Linker(链接):

    这个阶段运行目标链接器去合并多个目标程序成一个可执行文件或者动态库。这个阶段输出成为a.out,.dylib或者.so文件


一些参数含义可以在这里搜索到,应该是需要翻墙。

OPTIONS

 可选的阶段(参数):

    -E   运行 预编译阶段

    -fsyntax-only 运行预编译、语法机洗和类型检查

    -S 运行前面的阶段以及生成和优化目标代码,生成程序集文件

    -c 运行上述所有的阶段,加上汇编器,生成目标.o文件

    没有选择任何控制阶段(参数): 如果没有选择任何参数选项,执行上述所有的阶段,并且进行连接生成可执行文件或者共享库(动态共享库?)

    语言和模式可选参数:

     -x <language> 后续文件视为支持特定类型的标准语言   

     -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一样(单独列出来有点没头没脑的,为了方便还是妥协因素?)

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

        -trigraphs: 开启三字符和双字符(自行google了解)

        -ffreestanding:  是否是标准库不存在的的环境(设计到操作系统,有点深,搞不明白)。

        -fno-builtin: 禁止优化内建函数如 strlen()和malloc()。

        -fmath-errno: 调用标准数学函数需要检测是否会发生错误

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

        -fms-extensions:支持Microsoft 扩展(还是微软牛  -_-)

        -fmsc-version=: _MSC_VER微软编译器版本宏,默认是1300

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

        -fwritable-strings: 支持字c符串可修改选项,具体可以看看这段代码,使用clang 编译时候加上和不加上这个选项会有不同效果-_-!

        -flax-vector-conversions: 允许隐式向量转换的松散规则检查

        -fblocks: 是苹果的blocks 被识别

        -fobjc-abi-version=version: 选择Object-C ABI版本,可用的版本1(不稳定ABI),2(稳定的ABI 1),3(稳定的ABI 2)(ABI 可以知乎上搜搜答案,有些回答的挺好)

        -fobjc-nonfragile-abi-version=<version>:默认选择Object-C稳定版本的ABI,这个仅会用于Object-C ABI

        -fobjc-nonfragile-abi, -fno-objc-nonfragile-abi: 可以使用Object-C 稳定的ABI,在对应的平台上是默认的ABI,-fno 与之相反。

内容翻译的时候才发现不懂的内容太多,耗时在意料之外。 TargetSelectionOptions 下一篇继续翻译!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容