c++ - 如何取消定义 Visual Studio 2012 的系统定义?

标签 c++ visual-studio-2012 macros compiler-flags

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

我尝试了两种方法:

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

但没有任何效果。问题在 Visual Studio 2013 中是相同的。

我该怎么办?

最佳答案

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

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

关于c++ - 如何取消定义 Visual Studio 2012 的系统定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22756722/

相关文章:

c++ - 如何实例化对象的静态 vector ?

c++ - 用 noexcept 重写 throw after 函数

c# - 打开项目时,主窗体文件被标记为未保存

objective-c - ObjC 宏——我可以包括检查变量是否在当前范围内定义吗?

scala - 宏的目的是什么?

c - 带有新参数的宏

c++ - makefile 并链接不同文件夹中的库

visual-studio-2012 - 是什么导致多进程编译在Visual Studio 2012上失败?

c++ - 如何将文件夹设置为 Xcode 中的全局包含,类似于 Visual Studio?

c++ - 无法在 GCC 中使用数组