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