在Linux和Eclipse IDE中使用FFTW库的问题

Problems using FFTW library in Linux and Eclipse IDE

本文关键字:FFTW 问题 Linux Eclipse IDE      更新时间:2023-10-16

所以我正在使用一些以前写的旧代码。我原本打算将其移植到Windows,取得了一些成功,但很快遇到了其他问题,并决定移回*nix环境。最初的代码在第一次尝试中编译并运行得很好。

我正在运行Ubuntu 11.10,并选择Eclipse作为我的IDE。编译和运行原始代码时,一切都很好。现在我已经安装了FFTW库([FFTW.org/[1]),似乎无法构建任何使用该库的东西。

我在终端中使用智能安装了图书馆:

sudo apt-get install libfftw3-dev libfftw3-doc

图书馆肯定存在:

~$ g++ -lfftw3
/usr/lib/gcc/x86_64-linux-gnu/4.6.1/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status

我已经将"fftw3"添加到Eclipse中项目的属性->C++链接器->Libraries列表中。

发现头文件很好。

当我进行编译时,库中定义的每一个数据类型都无法定义,所以本质上编译器不知道该做什么

我有点不知所措。。。

以下是其中一个错误(它们都是相同的):线路:

fftw_real a[M][N];

错误:

error: ‘fftw_real’ was not declared in this scope

我不知道还能尝试什么。非常感谢您的帮助和专业知识。提前谢谢。

已解决!这是解决方案

对于其他使用旧代码且睡眠不足的人,在谷歌和StackOverflow上搜索类似问题的解决方案,请从我的愚蠢错误中吸取教训,而不是自己犯错误。

这里的关键短语是旧代码。我的代码是为FFTW2编写的,但我使用的是库的第3版,它有一个完全不同的接口。我必须更新所有使用库的代码,然后一切正常。

Doh!多么愚蠢。我希望有一天在谷歌的土地上有人会发现这很有用。

谢谢你,Dietmar Kühl,帮我认识到了问题所在。我很感激你花时间安装图书馆并四处闲逛;你真是太好了。

使用find fftw-3.3 | xargs grep fftw_real显示

fftw-3.3/ChangeLog:fftw_real已消失

这似乎是根本问题(好吧,只是提供了一个答案,让这个问题在被回答时结束)。