您的位置:首页 > 其它

无法打开cufft.lib文件以及无法解析cufft的相关的外部符号的解决方法

2016-08-08 14:10 871 查看
        近期在学习CUDA做GPU程序的开发,环境是VS2013 + CUDA6.5,在写程序的过程当中总是出现匪夷所思的错误,让我一直觉得自己的环境没有配好。

       本来程序跑得好好的,然后其他人说要升级CUDA的版本,那就直接下载CUDA7.5进行新版本的覆盖,重新定义项目的自定义依赖项,没想到就出现了一堆错误:

error LNK2001: 无法解析的外部符号 _cufftPlanMany@44
error LNK2001: 无法解析的外部符号 _cufftExecR2C@12
error LNK2001: 无法解析的外部符号 _cufftExecC2R@12
error LNK2001: 无法解析的外部符号 _cufftDestroy@4

后来发现,是因为升级了CUDA的版本,CUDA中的cufft.lib只出现在了64位的版本中,需要将配置管理器中的Win32改为X64再跑,然后又出现了别的错误:

error LNK2001: 无法解析的外部符号 __imp_fftw_execute
error LNK2001: 无法解析的外部符号 __imp_fftw_plan_dft_r2c_2d
error LNK2001: 无法解析的外部符号 __imp_fftw_plan_dft_c2r_2d
error LNK2001: 无法解析的外部符号 __imp_fftw_destroy_plan
error LNK2001: 无法解析的外部符号 __imp_fftw_malloc
error LNK2001: 无法解析的外部符号 __imp_fftw_free

用fftw库的地方报错了,原来是因为原来的程序里面加进去的fftw库是32位的,把平台换成x64之后不兼容,所以报错。

       升级要多多注意依赖的库的版本,很容易不兼容,解决办法是将原来32位的fftw库换成64位,或者注释掉用到了fftw库的代码。

另外,发现忘了写无法打开cufft.lib文件的解决办法,其实就是在项目->属性->链接器->输入的第一行加上去cufft.lib就可以了,如果还没有找到的话可以在项目属性的附加库目录指定cufft.lib的绝对路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐