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

Posted

技术标签:

【中文标题】在 Linux 和 Eclipse IDE 中使用 FFTW 库的问题【英文标题】:Problems using FFTW library in Linux and Eclipse IDE 【发布时间】:2012-01-08 02:58:17 【问题描述】:

所以我正在使用我前段时间编写的一些旧代码。我最初打算将它移植到 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

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

头文件找到就好了。

当我去编译时,库中定义的每一个数据类型都没有被定义,所以基本上编译器不知道该怎么做。

我有点难过...

这是错误之一(它们都是相同的): 线路:

fftw_real a[M][N];

错误:

error: ‘fftw_real’ was not declared in this scope

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

已解决!这是解决方案

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

这里的关键词是旧代码。我的代码是为 FFTW 2 编写的,但我使用的是库的版本 3,它具有完全不同的界面。我必须更新所有使用该库的代码,然后一切正常。

哇!多么愚蠢。我希望 Google 领域的某个人有一天会发现这很有用。

感谢 Dietmar Kühl 帮助我发现了问题所在。感谢您花时间安装库并四处寻找;你真好。

【问题讨论】:

第一个错误(来自g++ -lfftw3)似乎表明您试图单独链接库。这行不通。您需要自己提供一个程序(我无法评论添加源代码需要什么,因为我没有使用 Eclipse)。另一个错误看起来好像没有包含任何声明 fftw_real 的文件(我不知道这是在哪里声明的,因为我也没有使用 fftw3)。 第一个错误是为了证明这个库肯定被 g++ 看到了。 “未在此范围内声明”错误来自 Eclipse 以某种方式无法使用 fftw3 库进行编译的事实。如果我制作了一个快速的 hello-world 程序并在终端中使用“g++ helloworld.cpp -lfftw3”进行编译,那么它可以正常工作。 很遗憾,您没有展示 ../Source/ipTool.cpp 的样子。您是否包含"rfftw.h"?到目前为止,该库与它无关,因为您有编译错误,而不是链接错误。库仅在链接器需要解析未解析的符号时进入图片。 包含在内,这是必需的标头。我明白你对编译错误的意思。我不是故意提交这条消息的(早点进入),所以请给我一分钟试试你说的话。 我下载了 fftw-3.3,但在其中找不到类型 fftw_real。但是,我可以在 ChangeLog 中找到以下声明:“fftw_real 已消失”(在 2003-03-14 的评论中)。 【参考方案1】:

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

fftw-3.3/ChangeLog:fftw_real 消失了

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

【讨论】:

以上是关于在 Linux 和 Eclipse IDE 中使用 FFTW 库的问题的主要内容,如果未能解决你的问题,请参考以下文章

C++ - 将 C++ 代码从 Visual Studio 移植到 Linux Eclipse IDE 时出现问题

使用 Makefile 的旧 C++ 项目 .. 迁移到 Eclipse IDE?

如何在 SSH 下远程使用 IDE 编译和调试

Ubuntu下使用Eclipse IDE for C/C++ Developers交叉编译和调试

linux 下 eclipse 开发环境的搭建

哪些 IDE 可用于 Linux 中的 R? [关闭]