Libclang是Clang C家族编译器家族的C接口。它提供了一个相对较小的API,该API将解析源代码的设施暴露于抽象的语法树(AST)中,加载已经放置的AST,穿越AST,将物理源位置与AST中的元素相关联,以及支持基于Clang开发工具的其他设施。
Clang的C接口将永远不会提供存储在Clang的C ++ AST中的所有信息表示形式,也不应该:目的是维护从一个发行版到下一个版本相对稳定的API,仅提供支持开发工具所需的基本功能。
您可以在我的博客上找到有关Delphi的Libclang的文章。
neslib.clang通过两种方式利用libclang:
Neslib.Clang.Api提供商单元的Libclang版本14.0的标题翻译。您可以使用这些标头翻译,因为您将使用C语言中的libclang。可以在此处找到C API的文档:https://clang.llvm.org/doxygen/index.html
单位Neslib.Clang提供了Libclang API的更高水平的抽象。它在Libclang API之上提供了薄类的模型,从而更容易从Delphi使用。此外,它提供自动内存管理,因此您不必担心要发布哪些资源以及何时发布资源。
可以在neslib.clang.chm文件或在线网上找到Neslib.Clang单元的文档。
由于Clang DLL非常大(64多MB),因此Neslib.Clang仅使用这些DLL的32位版本的船只。如果您喜欢使用64位版本,则必须从LLVM下载页面下载64位版本的LLVM(请务必选择与此Neslib.Clang版本匹配的版本)。
安装后,您将在bin目录中找到libclang.dll 。您还需要从该目录复制VC Runtime DLL( msvcp140.dll和vcruntime140.dll )。
Neslib.Clang已根据简化的BSD许可获得许可。有关详细信息,请参见License.txt。