lur*_*her 5 c++ compilation llvm llvm-clang incremental-compiler
在 LLVM 中,我们有LLVMContext
,这是存储单元,我们有llvm::Module
,这是构建新符号(函数和类型)的地方。
我的问题是;用于编译单元的正确 llvm 抽象是什么?是Module
?或者这实际上意味着更大的范围,即:共享库目标
在我看来,编译单元必须满足全有或全无的结果;要么它编译所有内容都没有错误,要么存在错误,需要在 CU 中的任何符号可用之前对其进行修复和重新构建。在我看来,这是编译单元应该代表什么的定义
如果模块是 CU 的正确抽象,我如何将其他(正确编译的)Module
对象中的符号呈现给即将构建的新模块,以便它能够找到那些?我需要添加声明还是有其他一些快捷方式?
指向相关行的点将clang
有很大帮助