在学习llvm和clang的过程中,我遇到了缩写BU
和USR
。我一直弄不明白他们的意思。
我假设BU
是某种单元,就像TU
是翻译单元看到它在这里被用来谈论";[…]几个BU
被压缩在较大的TU
[…]〃内;。
我还发现,显然USR
s可以由AST
s生成。
- 这些缩写代表什么,它们的意思是什么
- 这些缩写是常见的编译器语言,还是仅由llvm使用
引用clang文档:
统一符号解析(USR(是一个字符串,用于标识程序中的特定实体(函数、类、变量等(。USR可以跨翻译单元进行比较,以确定例如一个翻译中的引用何时指代另一个翻译单元中定义的实体。
同样来自clang标签用户手册:
符号不能仅通过其拼写来识别:需要上下文信息来消除在不同范围内使用相同拼写的歧义。为了在项目中的所有翻译单元中唯一标识符号,clang定义了统一符号分辨率。
对于BU
,这可能指的是Boost。单元库。