我在 macOS 10.15 上,我正在为一个项目使用 vscode。对于这个项目,我设置了预编译头文件。编译运行良好,但预编译的头文件不包含在我的文件中。相反,它们包含在编译器选项 -include pch.hpp
中。 (如 here 所述)。问题是,因为我的文件中没有包含这些内容,所以 IntelliSense 无法正常工作并且我有很多包含错误。在 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
文件比预编译的头文件新。
最佳答案
使用 强制包含 , c_cpp_properties.json:
"configurations": [
{
...
"forcedInclude": ["${workspaceFolder}/include/config.h"],
...
}
]
关于c++ - 使用预编译头文件时,使用 vscode 在智能感知中自动包含头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61687961/