gpt4 book ai didi

compiler-errors - 编译FFT时使用“Undefined Reference…”(使用FFTW3库)

转载 作者:行者123 更新时间:2023-12-02 11:00:27 25 4
gpt4 key购买 nike

因此,我正尝试使用vesperix.com(版本3.2.2)中用于arm的已编辑FFTW交叉编译到ARM。

但是,当我尝试使用以下命令编译代码时

$ arm-linux-gnueabi-gcc -o fft fftw_example.c -L/usr/local/lib/lfftw3.a -lm 

出现此错误
/tmp/ccFFFtbv.o: In function `main':
fftw_example.c:(.text+0x34c): undefined reference to `fftw_plan_dft_1d'
fftw_example.c:(.text+0x368): undefined reference to `fftw_execute'
fftw_example.c:(.text+0x380): undefined reference to `fftw_destroy_plan'
collect2: error: ld returned 1 exit status

有人知道为什么吗?以及如何解决?

这是我的ARM fftw代码,我使用互联网上的某人代码。
/* Start reading here */

#include <fftw3.h>

#define NUM_POINTS 64


/* Never mind this bit */

#include <stdio.h>
#include <math.h>

#define REAL 0
#define IMAG 1

void acquire_from_somewhere(fftwf_complex* signal) {
/* Generate two sine waves of different frequencies and
* amplitudes.
*/

int i;
for (i = 0; i < NUM_POINTS; ++i) {
double theta = (double)i / (double)NUM_POINTS * M_PI;

signal[i][REAL] = 1.0 * cos(10.0 * theta) +
0.5 * cos(25.0 * theta) ;

signal[i][IMAG] = 1.0 * sin(10.0 * theta) +
0.5 * sin(25.0 * theta);
}
}

void do_something_with(fftwf_complex* result) {
int i;
for (i = 0; i < NUM_POINTS; ++i) {
double mag = sqrt(result[i][REAL] * result[i][REAL] +
result[i][IMAG] * result[i][IMAG]);

printf("%g\n", mag);
}
}


/* Resume reading here */

int main() {
fftwf_complex signal[NUM_POINTS];
fftwf_complex result[NUM_POINTS];

fftwf_plan plan = fftwf_plan_dft_1d(NUM_POINTS,
signal,
result,
FFTW_FORWARD,
FFTW_ESTIMATE);

acquire_from_somewhere(signal);
fftwf_execute(plan);
do_something_with(result);

fftwf_destroy_plan(plan);
fftwf_cleanup();

return 0;
}

最佳答案

您是否在代码中添加了fftw.h文件?

关于compiler-errors - 编译FFT时使用“Undefined Reference…”(使用FFTW3库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43107945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com