Visual Studio Code C ++删除'定义'在c_cpp_properties.json中

时间:2018-05-18 10:31:33

标签: c++ visual-studio-code

我知道可以在c_cpp_properties.json中添加Visual Studio Code的定义,并为我的代码手动定义__GNUC__,但是可以撤消/删除Visual Studio Code为自己假定的定义吗?例如,如果我将intelliSenseMode设置为clang-x64,则会定义宏__clang__,这会完全破坏我的智能感知,因为我没有为我使用的库提供适当的包含文件,并包含{ {1}}发生在__clang__之前。 __GNUC__值相同。如果我在包含文件中手动msvc-x64,那么一切都很完美。

是否可以在Visual Studio代码配置中撤消宏?

2 个答案:

答案 0 :(得分:0)

首先,创建一个名为vscode-preinclude.h的头文件。放在任何地方;我假设它在工作区文件夹中(其中也有.vscode)。在该文件内部,使用#undef来取消定义需要关闭的符号。示例:

#undef __clang__

接下来,使用命令面板(Ctrl + Shift + P)并打开“ C / C ++:编辑配置(UI)”。转到底部并打开“高级设置”。向下滚动到“强制包含”,然后添加一行:

${workspaceFolder}/vscode-preinclude.h

就是这样!

问题排查

如果它不起作用,请查看“ C / C ++:日志诊断”命令的输出。它应该显示如下内容:

    Forced Includes:
        D:\WRK\LEARN\VSCODE\CPPHELLO\VSCODE-PREINCLUDE.H

在其输出中。

答案 1 :(得分:0)

如果您不希望C ++扩展自动配置您的系统包含和定义,则可以在"compilerPath": ""中为您的配置设置c_cpp_properties.json,该扩展将停止自动配置您。