我使用的是一个旧的C代码库,其中有一些具有非标准扩展名的头文件,如.s
、.e
等,而不是.h
。
由于兼容性原因,我不能重命名这些文件。
当前,这些文件在clangd中导致以下错误消息:
无法处理编译,需要在“”clang(Fe_expected_compiler_job)中精确地执行一个编译器作业
我将其解释为“找到0编译器作业”,即clangd将这些文件视为.c
源文件。
如何才能将它们作为头文件来处理?
发布于 2022-03-14 17:37:05
我发现compile_commands.json
可以用来指示clangd使用生成预编译的头文件(PCH文件)选项将具有任意名称的文件作为头文件来处理。
[
{
"directory": "path/to/directory",
"file": "path/to/file.e",
"arguments": ["clang", "-x", "c-header", "path/to/file.e"]
}
]
对于C++头,您必须使用c++-header
而不是c-header
。
我在clangd 13.0.0上测试了这个。
我得到了这个答案的帮助。
https://stackoverflow.com/questions/71471967
复制相似问题