opencv - OpenCV 245首次构建错误

标签 opencv

我下载了opencv-2.4.5的源代码,并且按照教程(在Windows的opencv站点上)进行了有关如何安装自己的库的全部教程。好的。我使用cmake创建了opencv.sln文件,然后使用Visual Studio 2010 Professional打开了该文件,然后单击生成解决方案,但仅成功了9个。 200个中的大多数失败,并且未找到有关tbbd.lib的大多数错误,以及未发现LNK1104错误的opencv_core245d.lib的大多数错误。我正在尝试解决几天。我试图展示文件的方式...有人可以帮忙吗?这是关于我的论文。 (不提供公共(public)语言支持的版本)

最佳答案

快速解答

我已经使用here教程成功编译了具有TBB支持的OpenCV。

规范:Vis​​ual Studio 2012/Win 7(64位)/OpenCV 2.4.5/CUDA 5

我已经下载了最新的TBB zip并将其解压缩到C:/src/OpenCV/dep(如上面链接的教程中所建议)。

您必须在CMake中使用以下TBB设置(根据您的文件路径进行调整):

TBB_LIB_DIR       ::  C:/src/OpenCV/dep/tbb41_20130314oss/lib/intel64/vc11
TBB_INCLUDE_DIRS  ::  C:/src/OpenCV/dep/tbb41_20130314oss/include/
TBB_STDDEF_PATH   ::  C:/src/OpenCV/dep/tbb41_20130314oss/include/tbb/tbb_stddef.h
WITH_TBB          ::  checked
BUILD_TBB         ::  unchecked

更多信息

最初,我还想安装具有CUDA 5支持的OpenCV,但似乎CUDA 5与VS2012不兼容。这是我在编译时遇到的错误
OpenCV:
Building NVCC (Device) object modules/core/CMakeFiles/cuda_compile.dir/src/cuda/Debug/cuda_compile_generated_matrix_operations.cu.obj
nvcc : fatal error : nvcc cannot find a supported cl version. Only MSVC 9.0 and MSVC 10.0 are supported

好消息是您正在使用VS2010,可以与CUDA一起使用,如here建议。
可以将VS2012设置为使用CUDA创建项目,但目前尚无办法(AFAIK)编译具有VS2012的CUDA支持的OpenCV(有关详细信息,请阅读this)。

总之,需要CUDA支持的人员应该使用VS2010编译和使用OpenCV。

另外,在编译OpenCV时,出现以下错误:
error C3859: virtual memory range for PCH exceeded; please recompile with a command line option of '-Zm118' or greater
fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit

我使用了here指令来最终编译OpenCV。我在“公共(public)属性”>“C/C++”>“命令行”中创建了一个具有/Zm130作为附加选项的属性表,并将其添加
所有生成的OpenCV项目。

供您引用,我还附加了我使用的CMake配置和CMakeCache.txt文件(由于我正在使用VS2012,因此已禁用CUDA):
  • CMake配置:http://pastebin.com/8rJZGZ3T
  • CMakeCache.txt:http://pastebin.com/A0q8YgJg

  • 希望这会有所帮助,如果您需要我详细说明任何步骤,请发表评论。

    关于opencv - OpenCV 245首次构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201049/

    相关文章:

    python - 分割后如何去除前景中的阴影?

    c++ - 用另一个 ROI 替换 ROI

    c++ - 使用 reshape 乘以 Mat 矩阵,OpenCV 中的 Mat 类型问题

    linux - 交叉编译arm的opencv程序时出错

    python - 从图像中删除绿屏

    android - 视频处理和过滤库

    python - 如何在CNN中将OpenCV函数中的1d数组与向量展平

    python - 使用 OpenCV 读取 PyCBitmap

    c++ - 类 cv::ml::SVM 没有名为 Params 的成员

    java - Opencv Java fillConvexPoly 和 approxPolyDP 函数