将 Clang -fsyntax-only 模式与静态库一起使用?

abh*_*shu 4 c++ clang

我正在使用 libclang 库来构建自动完成功能。libclang 在内部自动设置 -fsyntax-only 标志。libclang 似乎需要整个源代码树才能工作(或 .pch 文件)。我想要的只是传递单个源文件和包含它所依赖的所有代码的预编译库(.a 或 .so)?

我不知道该怎么做。

CB *_*ley 5

如果您使用,-fsyntax-only则要求 clang 仅检查源文件及其包含的文件的内容。它甚至不生成目标文件,更不用说 require 和库(静态或共享)。

您至少需要相关源文件及其包含的所有头文件(或这些文件的预编译版本)。您至少需要包含的库中的头文件,不需要完整的源代码树。头文件的打包方式通常取决于您使用的库。您经常会得到“标头+库”发行版。