Visual C++ #pragma 警告
Visual C++ #pragma warning
我有以下三个连续的警告:
Warning C4068 unknown pragma ...\microsoft visual studio 14.0\vc\include\comutil.h 53
... 54
... 54
相关行是:
#pragma warning(push)
#pragma warning(disable: 4290)
#pragma warning(disable: 4310)
平台工具集是通常的 v140,目标平台版本是 8.1。警告级别为W3。
我阅读了当前的#pragma 警告文档。
据我了解,第一行保存了警告设置的当前状态。
以下两行禁用前面代码的警告 4290 4310,直到 #pragma warning(pop)
恢复以前保存的状态。
为什么 #pragma warning
显示为未知?
在我设置的项目的属性页中
C/C++ -> Preprocess to a file -> Yes (/P)
我重建了项目,它为每个 C++ 文件生成了一个带有 *.i
文件的调试目录,其中包含所有展开的宏(参见 here)。
这些文件非常大,但它们还包含有用的 #line
指令,显示编译器何时访问和退出头文件。所以我 grepped 用于引发错误的头文件的名称,我能够检测到 #pragma warning(push)
中的 warning
也被扩展了,这导致了未找到警告。
因为我已经包含了一些来自第三方 GNU 项目的头文件(其中没有定义这种类型的 #pragma
),所以找到提高编译器的 #define warning
宏相对简单警告。
我有以下三个连续的警告:
Warning C4068 unknown pragma ...\microsoft visual studio 14.0\vc\include\comutil.h 53
... 54
... 54
相关行是:
#pragma warning(push)
#pragma warning(disable: 4290)
#pragma warning(disable: 4310)
平台工具集是通常的 v140,目标平台版本是 8.1。警告级别为W3。
我阅读了当前的#pragma 警告文档。
据我了解,第一行保存了警告设置的当前状态。
以下两行禁用前面代码的警告 4290 4310,直到 #pragma warning(pop)
恢复以前保存的状态。
为什么 #pragma warning
显示为未知?
在我设置的项目的属性页中
C/C++ -> Preprocess to a file -> Yes (/P)
我重建了项目,它为每个 C++ 文件生成了一个带有 *.i
文件的调试目录,其中包含所有展开的宏(参见 here)。
这些文件非常大,但它们还包含有用的 #line
指令,显示编译器何时访问和退出头文件。所以我 grepped 用于引发错误的头文件的名称,我能够检测到 #pragma warning(push)
中的 warning
也被扩展了,这导致了未找到警告。
因为我已经包含了一些来自第三方 GNU 项目的头文件(其中没有定义这种类型的 #pragma
),所以找到提高编译器的 #define warning
宏相对简单警告。