使用预编译头时,自动将intellisense中的头文件包含在vscode中



我在macOS 10.15上,我正在为一个项目使用vscode。对于这个项目,我设置了预编译的头。编译工作得很好,但预编译的头文件没有包含在我的文件中。相反,它们包含在编译器选项-include pch.hpp中(如本文所述(。问题是,因为我的文件中没有这些include,IntelliSense工作不好,我有很多include错误。在c_cpp_properties.json中,我尝试添加行

"compilerArgs": [
"-include ${workspaceFolder}/emulator/pch.hpp"
]

但它没有起作用,错误仍然存在。有没有一种方法可以告诉IntelliSense自动包含一个文件?

我以前做的是

#ifndef BUILD
#include "pch.hpp"
#endif

在我所有其他文件中包含的util.hpp文件中,并在编译时使用-DBUILD定义BUILD。问题是,每当我修改util.hpp文件时,我都必须重新创建预编译头文件,因为我在clang中遇到一个错误,告诉我我的util.hpp文件比预编译的头文件新。

使用forceInclude,c_cpp_properties.json:

"configurations": [
{
...
"forcedInclude": ["${workspaceFolder}/include/config.h"],
...
}
]

最新更新