我下载了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。
规范:Visual 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):
希望这会有所帮助,如果您需要我详细说明任何步骤,请发表评论。
关于opencv - OpenCV 245首次构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201049/