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

时间:2012-01-08 02:58:17

标签: c++ linux eclipse fftw

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

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

我在终端使用aptitude安装了库:

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

我在Eclipse的项目属性 - > C ++ Linker-> Libraries列表中添加了“fftw3”。

找到头文件就好了。

当我去编译时,库中定义的每个数据类型都无法定义,因此编译器基本上不知道该怎么做。

我有点难过......

这是其中一个错误(它们都是相同的): 行:

fftw_real a[M][N];

错误:

error: ‘fftw_real’ was not declared in this scope

我不确定还有什么可以尝试的。非常感谢您的帮助和专业知识。提前谢谢。

解决了!这是解决方案

对于使用 OLD CODE 并且睡眠不足的其他人,在Google和StackOverflow上搜索类似问题的解决方案,请从我的愚蠢错误中学习,而不是自己做错。

这里的关键词是旧代码。我的代码是为FFTW 2编写的,但是我使用的是库3的版本,它有一个截然不同的接口。我不得不更新所有使用该库的代码,然后一切正常。

卫生署!多么愚蠢。我希望有一天在谷歌的土地上找到这个有用的人。

感谢DietmarKühl,帮助我意识到错误。我感谢你花时间安装图书馆并四处寻找;那对你很好。

1 个答案:

答案 0 :(得分:1)

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

  

fftw-3.3 / ChangeLog:fftw_real消失了

这似乎是根本问题(好吧,只是提供一个答案,让这个问题在回答时关闭,真的)。