最新kali之clang

描述:

  clang-Clang C,C ++和Objective-C编译器。
  clang是一个C、c++和Objective-C编译器,它包含预处理、解析、优化、代码生成、汇编和链接。根据传递的高级模式设置,Clang会在完成完整链接之前停止。尽管Clang是高度集成的,但重要的是了解编译的阶段,了解如何调用它。 这些阶段是:
  驱动:
    clang可执行文件实际上是一个小型驱动程序,它控制其他工具(如编译器、汇编器和链接器)的整体执行。通常您不需要与驱动程序交互,但是您可以透明地使用它来运行其他工具。
  预处理:
    此阶段处理输入源文件的标记化,宏扩展,#include扩展以及其他预处理程序指令的处理。 该阶段的输出通常称为“ .i”(对于C),“.ii”(对于C ++),“.mi”(对于Objective-C)或“ .mii”(对于Objective-C ++)文件 。
  解析和语义分析:
    此阶段解析输入文件,将预处理器令牌转换为解析树。 一旦采用了语法分析树的形式,它就会应用语义分析来计算表达式的类型,并确定代码是否格式正确。 该阶段负责生成大多数编译器警告以及解析错误。 该阶段的输出是“抽象语法树”(AST)。
  代码生成和优化:
    此阶段将AST转换为低级中间代码(称为“ LLVM IR”),最终转换为机器代码。 此阶段负责优化生成的代码并处理特定于目标的代码生成。 该阶段的输出通常称为“ .s”文件或“ assembly”文件。
    Clang还支持使用集成汇编器,在该汇编器中,代码生成器直接生成目标文件。 这避免了生成“ .s”文件和调用目标汇编程序的开销。
  汇编程序:
    此阶段运行目标汇编程序,以将编译器的输出转换为目标目标文件。 该阶段的输出通常称为“ .o”文件或“ object”文件。
  链接器:
    此阶段运行目标链接程序,以将多个目标文件合并到可执行文件或动态库中。 此阶段的输出通常称为“ a.out”,“。dylib”或“ .so”文件。
  clang静态分析器:
    Clang静态分析器是一种工具,可扫描源代码以尝试通过代码分析来发现错误。 该工具使用了Clang的许多部分,并内置在同一驱动程序中。 有关如何使用静态分析器的更多详细信息,请参见https://clang-analyzer.llvm.org

选项:

  阶段选择选项:

	-E
		运行预处理器阶段。

	-fsyntax-only
		运行预处理器、解析器和类型检查阶段。

	-S
		运行前面的阶段以及LLVM生成和优化阶段以及特定于目标的代码生成,从而生成一个程序集文件。

	-c
		运行上述所有程序,再加上汇编程序&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vanony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值