英语法语西班牙语

Ad


OnWorks 网站图标

clang-3.5 - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 clang-3.5

这是命令 clang-3.5,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


clang - Clang C、C++ 和 Objective-C 编译器

概要


[-c|-S|-E] -标准=标准 -g
[-氧气|-氧气|-氧气|-氧气|-奥法斯特|-你|-盎司|-O|-氧气]
-W警告... -迂腐
-I目录... -L目录...
-D宏[=定义]
-f功能选项...
-m机器选项...
-o 输出文件
-标准库=图书馆
输入文件名

商品描述


是一个 C、C++ 和 Objective-C 编译器,它包括预处理、解析、
优化、代码生成、汇编和链接。 取决于哪种高级模式
设置通过,Clang 会在做完整链接之前停止。 虽然 Clang 是高度
集成,重要的是要了解编译的阶段,了解如何
调用它。 这些阶段是:

驱动器
可执行文件实际上是一个控制整体执行的小驱动程序
其他工具,如编译器、汇编器和链接器。 通常你不需要
与驱动程序交互,但您可以透明地使用它来运行其他工具。

前处理
此阶段处理输入源文件的标记化、宏扩展、#include
其他预处理器指令的扩展和处理。 这个阶段的输出是
通常称为“.i”(对于 C)、“.ii”(对于 C++)、“.mi”(对于 Objective-C)或“.mii”
(对于 Objective-C++)文件。

解析 语义 分析
此阶段解析输入文件,将预处理器标记转换为解析树。
一旦以解析器树的形式出现,它就会应用语义分析来计算类型
表达式,并确定代码是否格式良好。 这个阶段是
负责生成大部分编译器警告以及解析错误。 这
这个阶段的输出是一个“抽象语法树”(AST)。

代码 优化
此阶段将 AST 转换为低级中间代码(称为“LLVM IR”)和
最终到机器代码。 这个阶段负责优化生成的
代码和处理特定于目标的代码生成。 这个阶段的输出是
通常称为“.s”文件或“程序集”文件。

Clang 还支持使用集成汇编器,其中代码生成器
直接生成目标文件。 这避免了生成“.s”文件的开销
以及调用目标汇编程序。

汇编
此阶段运行目标汇编程序以将编译器的输出转换为
目标对象文件。 此阶段的输出通常称为“.o”文件或
“对象”文件。

链接
此阶段运行目标链接器以将多个目标文件合并为一个可执行文件或
动态库。 此阶段的输出通常称为“a.out”、“.dylib”或
“.so”文件。

Clang 编译器支持大量选项来控制每个阶段。 在
除了代码编译,Clang 还支持其他工具:

静止 分析仪

Clang 静态分析器是一种扫描源代码以尝试通过以下方式查找错误的工具
代码分析。 此工具使用 Clang 的许多部分,并内置于同一个驱动程序中。
请参见http://clang-analyzer.llvm.org> 有关如何使用静态的更多详细信息
分析器。

配置


阶段 选择 附加选项
-E 运行预处理器阶段。

-f仅语法
运行预处理器、解析器和类型检查阶段。

-S 运行前面的阶段以及 LLVM 生成和优化阶段和目标 -
生成特定代码,生成汇编文件。

-c 运行以上所有程序,加上汇编程序,生成目标“.o”目标文件。

没有 阶段 选择 选项
如果未指定阶段选择选项,则运行上述所有阶段,并且链接器处于
运行以将结果组合到可执行或共享库中。

语言 选择 时尚 附加选项
-x 语言
将后续输入文件视为具有类型 语言.

-标准=语言
指定要编译的语言标准。

-标准库=图书馆
指定要使用的 C++ 标准库; 支持的选项是 libstdc++ 和 libc++。

-ansi
与...一样 -std=c89.

-ObjC++
将源输入文件视为 Objective-C++ 输入。

-对象
将源输入文件视为 Objective-C 输入。

-三合字母
启用三字符。

-f独立
表明文件应该被编译为独立的,而不是托管的,
环境。

-fno 内置
禁用内置函数的特殊处理和优化,如 strlen 和
分配器。

-fmath-errno
指示数学函数应被视为更新 errno。

-fpascal 字符串
使用“\pfoo”启用对 Pascal 样式字符串的支持。

-fms-扩展
启用对 Microsoft 扩展的支持。

-fmsc-版本=
设置_MSC_VER。 在 Windows 上默认为 1300。 不另外设置。

-fborland 扩展
启用对 Borland 扩展的支持。

-f可写字符串
使所有字符串文字默认为可写。 这将禁用字符串的唯一性和
其他优化。

-亚麻矢量转换
允许隐式向量转换的松散类型检查规则。

-f块
启用“块”语言功能。

-fobjc-仅GC
指示Objective-C代码应该在GC-only模式下编译,该模式才有效
当启用 Objective-C 垃圾收集时。

-fobjc-gc.
指示应在混合 GC 模式下编译 Objective-C 代码,该模式适用于
GC 和非 GC 模式。

-fobjc-abi-版本=版本
选择要使用的 Objective-C ABI 版本。 可用版本为 1(旧版“脆弱”
ABI)、2(非脆弱 ABI 1)和 3(非脆弱 ABI 2)。

-fobjc-nonfragile-abi-版本=版本
选择默认使用的 Objective-C 非脆弱 ABI 版本。 这只会是
当启用非脆弱 ABI 时用作 Objective-C ABI(通过
-fobjc-nonfragile-abi,或者因为它是平台默认值)。

-fobjc-nonfragile-abi
启用 Objective-C 非脆弱 ABI。 在平台上,这是
默认 ABI,可以禁用它 -fno-objc-nonfragile-abi.

目标 选择 附加选项
Clang 完全支持交叉编译作为其设计的固有部分。 根据
您的 Clang 版本是如何配置的,它可能支持多个交叉
编译器,或者可能只支持本机目标。

-拱 架构
指定要构建的架构。

-mmacosx-版本-min=版本
在为 Mac OS X 构建时,请指定您的应用程序支持的最低版本。

-miphoneos-版本-min
为 iPhone OS 构建时,请指定您支持的最低版本
应用程序。

-行进=CPU
指定 Clang 应该为特定的处理器家族成员生成代码,并且
之后。 例如,如果指定-march=i486,则允许编译器生成
在 i486 和更高版本的处理器上有效的指令,但可能不存在于
较早的。

代码 附加选项
-氧气 -氧气 -氧气 -氧气 -奥法斯特 -你 -盎司 -O -氧气
指定要使用的优化级别:

-氧气 意思是“没有优化”:这个级别编译最快,生成最多
可调试的代码。

-氧气 介于两者之间 -氧气-氧气.

-氧气 中等优化水平,可实现大多数优化。

-氧气 喜欢 -氧气,除了它启用需要更长时间执行的优化或
可能会生成更大的代码(试图让程序运行得更快)。

-奥法斯特
启用所有优化 -氧气 以及其他积极的优化
这可能违反严格遵守语言标准。

-你 喜欢 -氧气 进行额外的优化以减少代码大小。

-盎司 喜欢 -你 (因此 -氧气),但进一步减少了代码大小。

-O 相当于 -氧气.

-氧气 更高
目前相当于 -氧气

-g 生成调试信息。 请注意,Clang 调试信息最适用于 -氧气.

-f独立调试 -fno-独立调试
Clang 支持许多优化以减少调试信息的大小
二进制。 它们基于调试类型信息可以是
分布在多个编译单元上。 例如,Clang 不会发出类型
模块不需要的类型的定义,可以用
前向声明。 此外,Clang 只会发出动态 C++ 类的类型信息
在包含类的 vtable 的模块中。

-f独立调试 选项关闭这些优化。 这在以下情况下很有用
使用不附带调试信息的 3rd 方库。 这是
默认在达尔文。 请注意,Clang 永远不会为以下类型发出类型信息
程序根本没有引用。

-f异常
启用展开信息的生成,这允许通过抛出异常
Clang 编译堆栈帧。 这在 x86-64 中默认开启。

-Ftrapv.
生成代码以捕获整数溢出错误。 有符号整数溢出未定义
在 C 中,使用这个标志,会生成额外的代码来检测它并在它出现时中止
发生。

-可见性
此标志设置默认可见性级别。

-fcommon
此标志指定没有初始值设定项的变量获得公共链接。 有可能
禁用与 -fno-普通.

-ftls-模型
设置默认线程本地存储 (TLS) 模型以用于线程本地变量。
有效值为:“global-dynamic”、“local-dynamic”、“initial-exec”和“local-exec”。
默认值为“全局动态”。 默认模型可以被覆盖
tls_model 属性。 如果出现以下情况,编译器将尝试选择更有效的模型
可能。

-flto -emit-llvm.
生成 LLVM 格式的输出文件,适用于链接时间优化。 使用时
-S 这将生成 LLVM 中间语言汇编文件,否则这
生成 LLVM 位码格式的目标文件(可以传递给链接器
取决于阶段选择选项)。

驱动器 附加选项
-###
打印(但不运行)要为此编译运行的命令。

- 帮帮我
显示可用选项。

争论的论点
不要对未使用的驱动程序参数发出警告。

-哇,ARGS
传递逗号分隔的参数 ARGS 到汇编程序。

-Wl,ARGS
传递逗号分隔的参数 ARGS 到链接器。

-Wp,ARGS
传递逗号分隔的参数 ARGS 到预处理器。

-xanalyzer. ARG
通过 ARG 到静态分析器。

-X汇编程序 ARG
通过 ARG 到汇编程序。

-Xlinker ARG
通过 ARG 到链接器。

-X预处理器 ARG
通过 ARG 到预处理器。

-o 文件
将输出写入 文件.

-打印文件名=文件
打印完整的库路径 文件.

-print-libgcc-文件名
打印“libgcc.a”的库路径。

-打印程序名称=姓名
打印完整的程序路径 姓名.

-打印搜索目录
打印用于查找库和程序的路径。

-保存临时
保存中间编译结果。

-集成为 -无集成作为
分别用于启用和禁用集成汇编器的使用。 无论
默认情况下,集成汇编器处于打开状态,取决于目标。

-时间
时间单独的命令。

-ftime-报告
打印每个编译阶段的时间摘要。

-v 显示运行和使用详细输出的命令。

诊断 附加选项
-fshow-列 -fshow-源位置 -fcaret-诊断 -fdiagnostics-fixit-信息
-fdiagnostics-可解析-修复 -fdiagnostics-打印-源-范围-信息
-fprint-源-范围-信息 -fdiagnostics 显示选项 -f消息长度
这些选项控制 Clang 如何打印出有关诊断的信息(错误和
警告)。 有关更多信息,请参阅 Clang 用户手册。

预处理器 附加选项
-D宏名=值
将隐式 #define 添加到在源之前读取的预定义缓冲区中
文件被预处理。

-U宏名
将隐式 #undef 添加到在源之前读取的预定义缓冲区中
文件被预处理。

-包括 文件名
将隐式 #include 添加到在源之前读取的预定义缓冲区中
文件被预处理。

-I目录
将指定目录添加到包含文件的搜索路径。

-F目录
将指定目录添加到框架包含文件的搜索路径中。

-nostdinc
不要在标准系统目录或编译器内置目录中搜索
包含文件。

-nostdlibinc
不要在标准系统目录中搜索包含文件,而是搜索
编译器内置包含目录。

-nobuiltinc
不要在 clang 的内置目录中搜索包含文件。

环境


TMPDIR, TEMP, TMP
这些环境变量按顺序检查,以便写入临时位置
编译过程中使用的文件。

路径
如果此环境变量存在,则将其视为指向的分隔路径列表
被添加到默认系统包含路径列表中。 分隔符是平台
从属定界符,如在 PATH 环境变量。

环境变量中的空组件将被忽略。

C_INCLUDE_PATH, OBJC_INCLUDE_PATH, CPLUS_INCLUDE_PATH, OBJCPLUS_INCLUDE_PATH
这些环境变量指定了额外的路径,对于 CPATH,它们只是
在处理适当的语言时使用。

MACOSX_DEPLOYMENT_TARGET
如果 -mmacosx-version-min 未指定,则从默认部署目标中读取
这个环境变量。 此选项仅影响达尔文目标。

使用 onworks.net 服务在线使用 clang-3.5


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    usm
    usm
    usm 是一个统一的 slackware 包
    处理自动的经理
    依赖解决。 它统一了
    各种软件包存储库,包括
    slackware、slacky、p...
    下载usm
  • 2
    chart.js之
    chart.js之
    Chart.js 是一个 Javascript 库,它
    允许设计师和开发人员绘制
    使用HTML5的各种图表
    画布元素。 Chart js 提供了一个很好的
    大批 ...
    下载 Chart.js
  • 3
    用于JasperReports的iReport-Designer
    用于JasperReports的iReport-Designer
    注意:iReport/Jaspersoft Studio 支持
    公告:从 5.5.0 版开始,
    Jaspersoft Studio 将成为官方
    JasperReports 的设计客户端。 iReport
    将...
    下载 JasperReports 的 iReport-Designer
  • 4
    安装后F
    安装后F
    PostInstallerF 将安装所有
    Fedora Linux 和其他软件
    默认不包括,之后
    第一次运行 Fedora。 它的
    容易...
    下载 PostInstallerF
  • 5
    痕迹
    痕迹
    strace 项目已移至
    https://strace.io. strace is a
    诊断、调试和指导
    Linux 的用户空间跟踪器。 它被使用
    监控一个...
    下载跟踪
  • 6
    gMKV 提取 GUI
    gMKV 提取 GUI
    mkvextract 实用程序的 GUI(部分
    MKVToolNix),其中包含大多数(如果
    不是全部) mkvextract 的功能和
    mkvinfo 实用程序。 用 C#NET 4.0 编写,...
    下载 gMKVExtractGUI
  • 更多 ”

Linux 命令

Ad