【发布时间】:2013-07-01 17:09:59
【问题描述】:
有没有人用 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 loop(no_vector)
for (int i = 0; i
{
**...**这让我可以构建 orb.cpp 和 stardetector.cpp。
如果此问题很严重,导致关键业务情况或阻碍您的产品开发或部署,请转至http://support.microsoft.com 或致电 1-800-MICROSOFT 寻求帮助。对于 Microsoft 高级客户,请联系您的管理员、您的技术客户经理或您的 Microsoft 高级客户代表。
我正在关闭这个 MSConnect 项目。如果您还有其他需要,请随时回复。
谢谢,
Eric Brumer - Microsoft Visual C++ 团队
可以在here 找到连接错误。不幸的是,这个问题的真正修复被推迟到以后。
【问题讨论】:
-
目前有进展吗?
-
还没有。我还没有确定这是 OpenCV 问题还是 vc12 问题。我倾向于后者,因为我查看了有问题的代码,对我来说似乎很好。
-
第二期有运气吗?我对 VS2013 也有同样的情况。
标签: visual-c++ opencv visual-studio-2013