Windows 下的 Qt 中 min max 函数冲突
在使用 Qt 时遇到 min 函数冲突是一个 非常常见 的问题,尤其是在 Windows 平台或包含某些标准库头文件时。
Windows 头文件定义了 min 宏
当你包含了 <windows.h>(或间接包含,如 <tchar.h>、
#define min(a,b) (((a) < (b)) ? (a) : (b))
这会导致你调用 std::min 或 qMin 时被宏替换,编译出错。
解决方法:定义 NOMINMAX 宏(推荐)
在包含任何 Windows 头文件之前,定义:
#define NOMINMAX
#include <windows.h>
// 或间接包含 windows.h 的头文件
可以在 Visual Studio 中的预处理器定义中定义。
浙公网安备 33010602011771号