如何取消定义 Visual Studio 2012 的系统定义

How can I undefine the System Definitions of Visual Studio 2012?

本文关键字:定义 Visual Studio 系统 2012 何取消 取消      更新时间:2023-10-16

我使用 Visual Studio 2012 来编辑面向 Linux 的源代码。问题在于语法突出显示弄错了,因为它认为定义了_WIN32、_MSC_VER和类似的宏。我能做些什么来摆脱它们?

我尝试了两种方法:

  1. 在属性页中添加了/u 命令以进行C++;
  2. 添加了/U"_WIN32"/U"_MSC_VER" 等。

但没有任何效果。在Visual Studio 2013中,问题是一样的。

我该怎么办?

这些是编译器预定义的宏。您只能在代码中#undef它们。可能使用自定义头文件。

无论如何,这个要求对我来说似乎很奇怪。如果要扫描 Linux 代码,为什么要使用 MSVC?如果Linux代码使用任何GCC扩展(它经常使用),它根本无法在MSVC下编译。

您可以在项目的配置中编辑它们。

右键单击项目->属性->C/C++->预处理器>预处理器定义

我创建了一个测试项目。定义仅在编译代码时受到影响。