在 VS2015 Update 3 中构建 OpenCV 3.2 时 xtr1common 中出现大量错误
Posted
技术标签:
【中文标题】在 VS2015 Update 3 中构建 OpenCV 3.2 时 xtr1common 中出现大量错误【英文标题】:Tons of errors in xtr1common when building OpenCV 3.2 in VS2015 Update 3 【发布时间】:2017-03-25 15:57:11 【问题描述】:在 Visual Studio 2015 Update 3 中构建一个简单的 OpenCV 应用程序时,使用 OpenCV 3.2,目标 x64(3.2 版本中没有 x86 库),我收到以下错误:
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(100): error C2737: 'std::is_same_v': 'constexpr' object must be initialized
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(100): error C2998: 'const bool std::is_same_v': cannot be a template definition
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(245): error C2737: 'std::is_integral_v': 'constexpr' object must be initialized
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(245): error C2998: 'const bool std::is_integral_v': cannot be a template definition
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(282): error C2737: 'std::is_floating_point_v': 'constexpr' object must be initialized
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(282): error C2998: 'const bool std::is_floating_point_v': cannot be a template definition
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(295): error C2737: 'std::is_arithmetic_v': 'constexpr' object must be initialized
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xtr1common(295): error C2998: 'const bool std::is_arithmetic_v': cannot be a template definition
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstddef(697): error C2737: 'std::is_function_v': 'constexpr' object must be initialized
1>c:\program files (x86)\microsoft visual studio 14.0\vc\include\xstddef(697): error C2998: 'const bool std::is_function_v': cannot be a template definition
不知何故,我不认为这是 OpenCV 的问题,所以我想我在构建过程中遗漏了一些东西或配置错误。任何应该改变的建议表示赞赏:)
当谈到如何配置 VS 的建议时,我关注了以下站点 http://opencv-srf.blogspot.com/2013/05/installing-configuring-opencv-with-vs.html。
添加源代码,虽然我认为这与构建的配置有关,而不是源代码:
#include "opencv2/opencv.hpp"
int main()
return 0;
如OpenCV via NuGet packages with Visual Studio 2015, how to configure? 中所述,通过 Nuget 添加 OpenCV 3.1 时出现相同的错误。有趣的是,它看起来像在完全不同的情况下看到的类似错误 - Visual Studio 2015: C++ REST API (Casablanca) failing compilation in VS inlcudes/headers 并且通过将 VS2015 从 RC 重新安装到完整社区版来解决。我正在使用 VS2015 Enterprise Update 3 所以我希望不是根本原因...
【问题讨论】:
您希望我们如何在没有看到您的代码的情况下回答任何事情?至少发布SSCCE。 我已经添加了源代码 ;-) 摆脱stdafx.h
;它有时会导致问题。
我摆脱了 stdafx,h,禁用了预编译的头文件,仍然存在相同的错误集 :( 任何其他建议表示赞赏 :)
【参考方案1】:
这个问题显然是由 VS2015 的问题引起的。至少在我修复了 VS2015 安装之后(从 Windows 中的Program and Features
,问题消失了)
【讨论】:
以上是关于在 VS2015 Update 3 中构建 OpenCV 3.2 时 xtr1common 中出现大量错误的主要内容,如果未能解决你的问题,请参考以下文章
Win10年度更新开发必备:VS2015 Update 3正式版下载汇总
(Win 7+VS 2013) WDK 8.1 Update 本身是不是足以安装构建环境?