2015-04-29 3 views
2

Я получаю следующие ошибки, когда я строю пример кода с помощью QT5, Visual Studio 2012 x64,, почему при использовании QT5 возникла следующая ошибка?

static inline qint64 nullJd() { return std::numeric_limits<qint64>::min(); } 

1>c:\qt\qt5.1.1\5.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): warning C4003: not enough actual parameters for macro 'min' 
    1>c:\qt\qt5.1.1\5.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): error C2589: '(' : illegal token on right side of '::' 
    1>c:\qt\qt5.1.1\5.1.1\msvc2012_64_opengl\include\qtcore\qdatetime.h(121): error C2059: syntax error : '::' 

Как исправить?

+0

MinGW компилирует код ОК – demonplus

ответ

4

Это должно исправить это для вас: https://forum.qt.io/topic/21605/solved-qt5-vs2010-qdatetime-not-enough-actual-parameters-for-macro-min-max/5

C++ мин/макс макрос в настоящее время не так называется. Итак, вы можете установить NOMINMAX перед вызовом заголовка для решения.

Существует несколько способов достижения этого, поскольку это описано в ссылке, которую я отправил.

т.е.

#define NOMINMAX 
#include <windows.h> 

или установить параметр компилятора /DNOMINMAX

или перейти к QMAKE проекта: DEFINES + = NOMINMAX

2

Вместо использования

<Windows.h> 

Вы можете также использовать

<qwindows.h> 

, который заботится об этой вещи или использовать NOMINMAX

Смежные вопросы