我在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"],
...
}
]