对静态库使用Clang -fsyntax-only模式

Using Clang -fsyntax-only mode with static libraries?

本文关键字:Clang -fsyntax-only 模式 静态      更新时间:2023-10-16

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

我不知道该怎么做。

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

您至少需要有问题的源文件和它包含的所有头文件(或这些文件的预编译版本)。您至少需要包含库中的头文件,而不需要完整的源代码树。头文件通常如何打包取决于您正在使用的库。通常你会得到一个"headers + libraries"的发行版