c++ - 使用预编译头文件时,使用 vscode 在智能感知中自动包含头文件

标签 c++ visual-studio-code intellisense

我在 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/

相关文章:

java - 如何在vscode中使用相对路径为eclipse Java项目添加引用的库JAR文件

c# - XAML UI 更新在代码隐藏中不可见

c++ - 双向链表无限循环?

c++ - 在遍历嵌套 vector 时删除元素

angular - VSCode/Angular 应用程序未完全启动

visual-studio-code - VSCode : Suppress all warnings from a particular Extension

jquery - vscode中的引用路径是什么

Javascript Intellisense 不适用于 Visual Studio 2010 Ultimate (Windows 7 x64)

c++ - 大std::vector的加速创建

c++ - 如何从继承的父类创建 unique_ptr