1

我在编译我的程序时遇到问题。我在我的项目中使用 Kiss FFT 库,但是当我尝试构建它时,我得到了这些错误:

[Linker Error] Error: Unresolved external '_kiss_fft_alloc' referenced from C:\[path]\UNIT4.OBJ

[Linker Error] Error: Unresolved external '_kiss_fft' referenced from C:\[path]\UNIT4.OBJ

我认为这是函数名称之前的“_”,但到目前为止我不知道如何解决它。

代码:

Unit4.cpp - gist.github.com/anonymous/fa33e0982240b00ff8c8

Unit4.h - gist.github.com/anonymous/b35e9abf93c93aeb1d45

[编辑]

我切换到 FFWT 库,但我有同样的问题。我已经编译了库并将它们添加到编译器路径和链接器路径中的 Borland 项目。

[Linker Error] Error: Unresolved external '_fftw_malloc' referenced from C:\[path]\UNIT4.OBJ
[Linker Error] Error: Unresolved external '_fftw_plan_dft_1d' referenced from C:\[path]\UNIT4.OBJ
[Linker Error] Error: Unresolved external '_fftw_execute' referenced from C:\[path]\UNIT4.OBJ
[Linker Error] Error: Unresolved external '_fftw_destroy_plan' referenced from C:\[path]\UNIT4.OBJ
[Linker Error] Error: Unresolved external '_fftw_free' referenced from C:\[path]\UNIT4.OBJ

例如,当我使用

4

2 回答 2

3

您的问题是基本的 C/C++ 用法。

您必须在项目中包含编译后的代码才能在项目中使用它。

KISSFFT 自带源码。该源代码必须经过编译并链接到您的程序。

FFTW 以库的形式安装。其他人将其编译到库中。您正在使用“#pragma comment(lib ...”) 将其链接到可执行文件中

于 2014-04-18T14:42:10.497 回答
1

我在 Borland 找到了 FFTW 库的解决方案。除了通过'imlib'编译lib文件之外,我还添加了

#pragma comment(lib, "fftw3-3.lib")
#pragma comment(lib, "fftw3f-3.lib" )
#pragma comment(lib, "fftw3l-3.lib" )

还将 .dll 文件复制到可执行文件夹,现在可以编译。但是,我不确定它是否正常工作。

Kiss FFT对我来说仍然是个谜。

于 2014-04-18T06:58:51.430 回答