2015-07-06 32 views
0

我试图在视觉工作室2013与Windows 7/8.1操作系统(我的工作计算机操作sysyem /和我的个人计算机操作系统)使用FFTW库和建筑FFTW库已按照所描绘的说明here使用Visual Studio的lib.exe工具构建库。到目前为止,我一直在使用库进行试验,当我在DEBUG模式下运行我的程序时,但是当我试图在RELEASE模式下运行我的程序时,我得到了所有我称之为fftw函数的LNK2001错误。在“发布模式”

1>runexample.obj : error LNK2001: unresolved external symbol __imp_fftwf_free 
1>runexample.obj : error LNK2001: unresolved external symbol __imp_fftwf_execute 
1>runexample.obj : error LNK2001: unresolved external symbol __imp_fftwf_cleanup 
1>runexample.obj : error LNK2001: unresolved external symbol __imp_fftwf_plan_dft_2d 
1>runexample.obj : error LNK2001: unresolved external symbol __imp_fftwf_alloc_complex 
1>runexample.obj : error LNK2001: unresolved external symbol __imp_fftwf_destroy_plan 

我在网上搜索到了解决这个问题,FFTW咨询documentation,但我还没有找到任何答案。有没有办法建立或链接针对fftw的“发布”库或正在做其他问题?

感谢

+1

这些都是导入库(由'__imp_'前缀表示)。没有“调试”导入库或“发布”导入库这样的事情。导入库仅包含存在于DLL或其他可执行文件中的函数的存根。所以也许问题在于你没有将导入库添加到你的项目的'释放'模式? – PaulMcKenzie

+0

谢谢,原来我没有在配置管理器中指定它们,我想它在调试中生成时确实没问题。但是当我添加这些库时,它在我想要构建发行版时可以正常工作 –

回答

0

FFTW不“释放”和“调试”导入库区分。有一组随FFTW提供的库可用于“发布”和“调试”构建。

“调试”和“释放”模式之间的连接问题库的一个常见原因是该配置仅被应用于“调试”模式,而不是也向“释放”模式。在“调试”模式下,编译器通常比较松弛,并且错误可能会通过,而不会处于“释放”模式。