如何取消定义 Visual Studio 2012 的系统定义
How can I undefine the System Definitions of Visual Studio 2012?
我使用 Visual Studio 2012 来编辑面向 Linux 的源代码。问题在于语法突出显示弄错了,因为它认为定义了_WIN32、_MSC_VER和类似的宏。我能做些什么来摆脱它们?
我尝试了两种方法:
- 在属性页中添加了/u 命令以进行C++;
- 添加了/U"_WIN32"/U"_MSC_VER" 等。
但没有任何效果。在Visual Studio 2013中,问题是一样的。
我该怎么办?
这些是编译器预定义的宏。您只能在代码中#undef
它们。可能使用自定义头文件。
无论如何,这个要求对我来说似乎很奇怪。如果要扫描 Linux 代码,为什么要使用 MSVC?如果Linux代码使用任何GCC扩展(它经常使用),它根本无法在MSVC下编译。
您可以在项目的配置中编辑它们。
右键单击项目->属性->C/C++->预处理器>预处理器定义
我创建了一个测试项目。定义仅在编译代码时受到影响。
相关文章:
- Visual Studio中的函数声明和函数定义问题
- Visual C++(VS2017)中用户定义的转换不明确
- Visual Studio C++ PlaySound 标识符未定义
- C2011 'CMemDC':Visual Studio 2019中的'class'类型重新定义
- 更改 git 分支名称后,在项目的 Visual Studio 代码中丢失智能感知(建议,转到定义C++
- 定义 uint= "unsigned int" 没有像我在 Visual Studio 中使用 nvcc 时预期的那样应用
- 如何在 Visual Studio C++ 11 中运行时定义二维数组?
- Visual Studio 2019 概念标识符未定义
- Visual Studio:snprintf 冲突的宏定义
- visual MSVC cl.exe尝试使用C++标头范例(定义与声明)
- 标识符"DDRB"未定义 - VS code / Visual Studio
- 在Visual Studio代码中包含自定义c++库的问题
- 在Visual Studio代码中定义DEBUG和RELEASE符号
- Visual C:模板类中的自定义错误消息
- 在 Visual Studio 2010(及更高版本)中定义包含或链接路径变量的位置
- 标识符"__readgsqword"未定义 - Visual Studio 2017
- Visual Studio 2017 C++,如何定义一个"环境变量"'Additional Library Directory'?
- 如何在 Visual Studio 中使用多个文件时阻止重新定义类
- 标识符uint8_t未定义 - Visual Studio 2017
- 如何取消定义 Visual Studio 2012 的系统定义