Mra*_*anz 5 opencv visual-c++ visual-studio-2013
有没有人有幸用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和我是菜鸟),我的流程是配置CMake for 2012,然后用2013打开生成的解决方案并将编译器升级到vc12.
我能够通过在'违规'文件中添加标题包含来超过最小/最大错误,但我对上面发布的完整错误感到困惑.
谢谢
更新:
接受的答案提供了在32位调试和发布以及64位调试中编译OpenCV所需的内容,但现在编译器由于内部编译器错误而无法编译64位版本.这可能是编译器此时的错误,但答案仍然解决了许多问题.
更新2: 因此64位问题被证明是自动矢量化器中的一个错误.这是相应的解决方法.
嗨,谢谢你的错误报告.我确认这是编译器优化器中的一个错误.我们将在未来的版本中修复它.
如果您需要源代码解决方法,请在computeOrbDescriptor内的循环上关闭矢量化器:
#pragma loop(no_vector)
for(int i = 0; i <dsize; ++ i)
{
Run Code Online (Sandbox Code Playgroud)**...**
这让我可以构建orb.cpp和stardetector.cpp.
如果此问题严重,导致严重的业务情况或阻止您的产品开发或部署,请访问http://support.microsoft.com或致电1-800-MICROSOFT寻求帮助.对于Microsoft Premier客户,请与您的管理员,技术客户经理或Microsoft高级客户代表联系.
我正在关闭此MSConnect项目.如果您还有其他需要,请随时回复.
谢谢,
Eric Brumer - Microsoft Visual C++团队
连接错误可以在这里找到.不幸的是,对此的真正解决方案被推迟到以后的日期.
小智 7
我已经设法在VS2013 RC上编译OpenCV 2.4.6,但最初它有相同的错误.我打开了VS解决方案并分两步修复了所有错误:
1)替换(Ctrl + H)
#include \<string\>
Run Code Online (Sandbox Code Playgroud)
至
#include <algorithm>\n#include <string>
Run Code Online (Sandbox Code Playgroud)
在整个解决方案中(确保在替换对话框中启用RegExp)
2)在"modules/opencv_features2d/Src/features2d_init.cpp"中将第184行更改为:
obj.info()->addParam(obj, "detector", (Ptr<Algorithm>&) obj.detector);
Run Code Online (Sandbox Code Playgroud)
(在此文件中搜索其他OpenCV版本的"GridAdaptedFeatureDetector")