我有与_WIN32定义的VSCode相反的问题-Visual Studio Code无法_WIN32
为我定义。这是一个跨平台项目,正在使用Microsoft编译器在Windows上开发,但是还需要能够在Linux上进行编译,所以我有
#ifdef _WIN32
#include <windows.h>
失败,然后VS Code用红色下划线标记对Windows API类型等的所有引用。(include机制本身运行良好,例如,包括常规C ++头文件都没问题。)
Windows上的VS Code可能无法定义的任何已知原因_WIN32
吗?我链接的问题表明它应该,并且我没有故意更改与它相关的任何设置。
最有可能的问题是,VSCode使用错误的C ++编译器来收集预定义的宏,而该编译器未预定义_WIN32
。
要进行检查,请在命令面板(Ctrl + Shift + P)中运行“ C / C ++:日志诊断”。输出将显示给您找到哪个VSCode编译器以及其内置的include路径和预处理器定义检测到的内容。如果我的猜测是正确的,则诊断将显示正在使用的错误编译器,并且_WIN32
丢失了该编译器。
假设要解决此问题,请使用命令Palette运行“ C / C ++:编辑配置(UI)”,然后设置“ Compiler path”以指向您的编译器可执行文件(cl.exe
在这种情况下)。那应该可以解决问题,因为VSCode随后将查询该编译器以确定预定义的宏,其中将包括_WIN32
。重新运行诊断以确认。
(我对上面问题中与之相关的问题给出了类似的答案,因为我认为这两个问题本质上都是相同的问题和解决方案,只是细节不同。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句