我正在尝试在 Visual Studio 2012 中的 Windows 8 上构建 OpenCV 2.4.6。从https://github.com/Itseez/opencv下载源代码后,我使用 cmake 生成(保留默认配置),然后加载生成的文件ALL_BUILD.vcxproj
进入 Visual Studio 2012。然后我尝试构建它。确实构建了几个模块(例如 core、flann、imgproc,...),但我正在尝试构建 highgui,以便我可以使用 PDB 文件来调试我的代码(无法打开视频文件)。构建错误以这个和许多类似的错误开始:
错误 C2039:“max”:不是“std”的成员 C:\OpenCV2.4.6\3rdparty\openexr\Imath\ImathMatrixAlgo.cpp 1094 1 IlmImf
对此类错误的一种修复(例如在此答案中)是添加#include <algorithm>
到失败的文件中。我在几个文件上尝试过,它似乎有效,但我对在本地更改流行库的源感到紧张。它必须在 Windows 上构建(您可以从OpenCV sourceforge 站点下载二进制文件,但不是 PDB 文件)所以我想了解如何在不更改源代码的情况下在我的机器上构建它。
我在配置步骤中遗漏了什么吗?我的机器上是否缺少某些路径设置等?为什么我会收到这些错误,我应该如何修复它们?
========== 编辑 ==========
查看目录路径,这似乎是第 3 方依赖项之一 OpenEXR 的问题。在 Github 上看,它似乎是 OpenCV 2.4.6 中使用的 OpenEXR 版本 1.7.1。OpenCV's Quick Start Installation on Windows状态中的说明:
- 对于 Eigen 库,再次下载并解压到 D:/OpenCV/dep 目录。
- 与上面的 OpenEXR 相同。
所以我下载了OpenEXR 1.7.1 源代码版本并将生成的文件解压缩openexr-1.7.1
到C:\OpenCV2.4.6\dep
.
然后我运行 cmake 并尝试构建生成的 Visual Studio 解决方案。可悲的是,我看到了同样的错误。