Windows 下的 Qt 中 min max 函数冲突

在使用 Qt 时遇到 min 函数冲突是一个 非常常见 的问题,尤其是在 Windows 平台或包含某些标准库头文件时。

Windows 头文件定义了 min 宏

当你包含了 <windows.h>(或间接包含,如 <tchar.h>、 等),Windows SDK 会定义:

#define min(a,b) (((a) < (b)) ? (a) : (b))

这会导致你调用 std::min 或 qMin 时被宏替换,编译出错。

解决方法:定义 NOMINMAX 宏(推荐)

在包含任何 Windows 头文件之前,定义:

#define NOMINMAX
#include <windows.h>
// 或间接包含 windows.h 的头文件

可以在 Visual Studio 中的预处理器定义中定义。

posted @ 2025-08-22 14:10  double64  阅读(22)  评论(0)    收藏  举报