Clang/LLVM是否有等同于.spec的文件,我在哪里可以找到参考
Is there an equivalent to .spec files for Clang/LLVM and where can I find a reference?
gcc
驱动程序可以配置为使用.specs
文件使用特定的链接器,特定的选项和其他细节(例如覆盖系统头)。
GCC(4.9.0)版本的当前(撰写本文时)手册在这里描述了规范文件。
Clang/LLVM是否有类似的机制?显然Clang也有驱动程序的概念,但我无法提出任何文档来说明Spec文件或类似的机制是否存在于Clang中,以及如何使用它们。
我对C和c++都感兴趣,但可能指向它们中的任何一个的指针都会让我开始。
目标是覆盖系统头文件和库路径,以及前面简要提到的链接器。
根据文档,Clang驱动程序没有与GCC规范文件直接对应的文件:
clang驱动没有"specs"的直接对应。规范中嵌入的大部分功能都在工具特定的参数转换例程中。规范中控制编译管道的部分通常是pipeline阶段的一部分。
#include搜索路径可以被-nostdinc
和-isystem
覆盖。
但是,我不知道如何覆盖链接器或完全覆盖库搜索路径。
现在发现有一些非常接近规格文件的东西:配置文件。
LLVM相关节选X文档(见上面的链接):
另一种指定配置文件的方法是将其编码为可执行文件的名字。例如,如果Clang可执行文件命名为
armv7l-clang
(它可能是指向clang
的符号链接),然后Clang将在Clang所在目录中搜索armv7l.cfg
文件如果在调用中指定了驱动程序模式,Clang将尝试找到一个特定于指定模式的文件。例如,如果可执行文件文件命名为
x86_64-clang-cl
, Clang首先查找x86_64-cl.cfg
如果没有找到,则查找x86_64.cfg
。如果命令行包含有效更改目标的选项体系结构(这些是
-m32
、-EL
和其他一些)和配置文件以体系结构名称开始,Clang尝试加载有效体系结构的配置文件。为例子中,调用:x86_64-clang -m32 abc.c
导致Clang首先搜索文件
i368.cfg
,如果没有这样的文件, Clang查找文件x86_64.cfg
。配置文件由指定的命令行选项组成一行或多行。仅由空白字符组成的行忽略第一个非空字符所在的行
#
。长选项可以通过尾随符分割成几行反斜杠。下面是一个配置文件的示例:# Several options on line -c --target=x86_64-unknown-linux-gnu # Long option split between lines -I/usr/lib/gcc/x86_64-linux-gnu/5.4.0/../../../../ include/c++/5.4.0 # other config files may be included @linux.options
@file
指令在配置文件中包含的文件是相对于包含文件已解析。例如,如果a配置文件~/.llvm/target.cfg
包含该指令在@os/linux.opts
中搜索文件linux.opts
目录~/.llvm/os
.
- C++我需要了解在哪里使用指针和双指针
- 未定义的引用在哪里
- 谷歌测试中的期望值存储在哪里
- 尽管遵循了规则,内存泄漏在哪里
- 静态数据成员模板专用化的实例化点在哪里
- 在哪里放置我的函数?进入我的母语 Gui 还是进入我的演示者?
- 在哪里声明结构运算符重载
- C++ 中的自定义异常:在哪里定义它们?
- 常量参数存储在哪里 (C++)?
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- 此递归函数的每次迭代的值存储在哪里?
- 如何告诉本机节点模块所需的dll存储在哪里?
- 在哪里存储跨平台C++应用存储?
- C++泛型类错误,问题出在哪里?
- 在标准中,模板参数的语法在哪里定义,例如,'std::function<int(char)>'?
- 第一个C 库:我不确定在哪里参考并声明我的变量
- VOID NTAPI是什么意思?在哪里可以找到它的参考资料
- 在哪里可以找到 C++11 参考论文/数字和书籍参考
- Clang/LLVM是否有等同于.spec的文件,我在哪里可以找到参考
- 我在哪里可以找到一个官方的参考资料,列出了上交所的内在功能的运作