自从过去1周以来,我一直在尝试在64位Windows XP计算机上的Visual Studio 2008上配置OpenCV2.1和CUDA3.1。但一切都是徒劳的。
仅OpenCV工作正常。单独使用CUDA3.1也可以正常工作。 我使用CUDA3.1进行64位...但对于OpenCV,我使用的是32位安装(在Source Forge上提供) - 可能出错?
在我配置OpenCV设置并编译示例项目的CUDA项目中,我收到以下文件的错误:
cxcore.hpp cxoperations.hpp cxcore.hpp cxmat.hpp 以及CUDA构建规则。
以上所有文件均不是我写的;但是库(我猜)。
在64位XP机器上通过VS安装CUDA,OpenCV的任何指示?
答案 0 :(得分:3)
链接到您的应用程序的库应该已编译到同一个arch。你不能混合架构。
换句话说,您必须编译所有内容 - 您的应用,OpenCV和CUDA - 为32位(如果需要,则为64位)。
我的建议是为32位编译CUDA,然后更改项目的属性以将应用程序构建为32位(因为您已经拥有32位版本的OpenCV)。
修改强>
对于链接问题:
unresolved external symbol _cufftExecR2C@12
unresolved external symbol _cufftExecC2R@12
unresolved external symbol _cufftPlan2d@16
unresolved external symbol _cufftDestroy@4
根据this post,将此库添加到您的项目设置中: cufft.lib
答案 1 :(得分:0)
我相信你需要构建Cmake的64位库 - 但我不确定。您肯定需要在x64中构建OpenCV以在Win XP x64安装上构建本机应用程序。如果OpenCV的构建显示错误,那么在尝试编译应用程序之前,您需要首先解决这些错误,这些应用程序链接到尚未正确编译的OpenCV库。