有一种方法可以将C/C++库作为一个仅包含头文件的文件分发.库在一个library.h
文件中:头声明和实现一起隐藏在#ifdef LIBRARY_IMPL
下面.您需要创建一些执行#define LIBRARY_IMPL; #include "library.h"
的.c
/.cpp
文件,这将创建带有实现的编译单元.
我有一个项目,它广泛使用这样的库.项目构建系统创建compile_commands.json
,然后clangd
使用它来向VSCode(具有llvm-vs-code-extensions.vscode-clangd)提供项目路径、数据 struct 和提示.
我的问题是,当打开library.h
文件进行编辑时,符号LIBRARY_IMPL
没有定义,因此#ifdef LIBRARY_IMPL
部分被视为注释-没有语法突出显示、类型判断等.
有没有一种方法可以告诉clangd
或扩展名在编译library.c
包装器文件而不是独立的.h文件时将文件视为原样?