有没有人用 VS 2013 RTM 编译 openCV?我已经尝试在 IlmImf 模块中得到一堆“min不属于命名空间std”“max不属于命名空间std”,并且opencv_features2d没有编译并出现以下错误:
opencv\modules\core\include\opencv2/core/core.hpp(4512):致命错误 C1075:在 '......\modules\features2d\src\features2d_init 的左大括号 '{' 之前找到文件结尾.cpp(187)' 匹配
由于最新的 CMake UI 还不支持使用 2013 构建(至少从 UI 开始,我是菜鸟),我的过程是为 2012 配置 CMake,然后使用 2013 打开生成的解决方案并将编译器升级到 vc12。
通过在“违规”文件中添加标头包含,我能够克服最小/最大错误,但我对上面发布的完整错误感到困惑。
谢谢
更新:
接受的答案提供了在 32 位调试和发布以及 64 位调试中编译 OpenCV 所必需的内容,但现在由于内部编译器错误,编译器无法编译 64 位发布。这很可能是编译器在这一点上的错,但答案仍然是解决了很多问题。
更新 2: 所以 64 位问题原来是自动矢量化器中的一个错误。这是相应的解决方法。
嗨,感谢您提供出色的错误报告。我确认这是编译器优化器中的一个错误。我们将在未来的版本中修复它。
如果您需要源代码解决方法,请在computeOrbDescriptor内的循环中关闭矢量化器:
#pragma 循环(no_vector)
对于 (int i = 0; i < dsize; ++i)
{
**...**
这让我可以构建 orb.cpp 和 stardetector.cpp。
如果此问题很严重,导致关键业务情况或阻碍您的产品开发或部署,请访问http://support.microsoft.com或致电 1-800-MICROSOFT 寻求帮助。对于 Microsoft 高级客户,请联系您的管理员、您的技术客户经理或您的 Microsoft 高级客户代表。
我正在关闭这个 MSConnect 项目。如果您需要其他任何内容,请随时回复。
谢谢,
Eric Brumer - Microsoft Visual C++ 团队
连接错误可以在这里找到。不幸的是,对此的真正修复被推迟到以后。