【发布时间】:2014-01-22 16:44:50
【问题描述】:
我正在尝试使用 Visual Studio 2012 从源代码构建 Qt 5.2.0。编译以下文件时失败:
/qtdeclarative/src/qml/jsruntime/qv4value_p.h
出现以下错误:
191: error C2039: _isnan: is not a member of std
第 191 行包含以下内容:
return doubleValue() && !std::isnan(doubleValue());
According to cppreference, std::isnan 应在标头 cmath 中定义,因为 C++11。 Qt 头文件确实包含此头文件。当我在 Visual Studio 中检查 cmath 时,我看不到名为 isnan 的函数。
我的结论是 VS2012 缺少这个 C++11 函数是否正确?起初我以为我可能必须以某种方式启用 C++11 支持,但根据 this answer 默认情况下启用 C++11 支持。鉴于binary downloads for Qt are available for VS2010 and VS2012,显然可以使用各自的编译器进行构建。有什么我遗漏的吗?
【问题讨论】:
-
您的 Qt 配置选项是什么?您可以尝试构建 5.2.1 吗?令我困惑的是,VS2012 构建是 Qt qt-project.org/wiki/CI_Configurations testresults.qt-project.org/ci/QtDeclarative_stable_Integration/… 的持续集成构建之一
标签: c++ qt visual-studio-2012 c++11 compiler-errors