将FFTW库添加到QT项目中

时间:2016-11-20 13:16:27

标签: c++ qt dll fftw

我试图将FFTW库添加到我的QT项目中。我从page下载了fftw-3.3.5-dll64.zip。

之后我将其解压缩,然后将所有文件复制到" c:\ fftw"目录。 在我的项目设置中,我添加了如下所示的行

INCLUDEPATH += "c:\fftw"
LIBS += -L "c:\fftw" -lfftw3-3 

然后,在我的MainWindow.h中,我将其包含在下面

#include <fftw/fftw3.h>

不幸的是,我无法重建我的项目。我有以下错误:

error: C1083: Cannot open include file: 'fftw/fftw3.h': No such file or directory

你有什么想法我该怎么办? &#34; c:\ fftw&#34;中的文件列表。目录

 Directory of c:\fftw

2016-11-20  14:15    <DIR>          .
2016-11-20  14:15    <DIR>          ..
2016-07-30  22:38           400˙306 bench.exe
2016-07-30  22:42           411˙177 benchf.exe
2016-07-30  22:44           380˙107 benchl.exe
2016-07-30  20:21            18˙342 COPYING
2016-07-30  20:21               863 COPYRIGHT
2016-07-30  22:38           184˙625 fftw-wisdom.exe
2016-07-30  22:44             2˙519 fftw3.f
2016-07-30  22:44            55˙850 fftw3.f03
2016-07-30  22:44            18˙517 fftw3.h
2016-07-30  22:44            27˙592 fftw3l.f03
2016-07-30  22:44            26˙291 fftw3q.f03
2016-07-30  22:42           184˙732 fftwf-wisdom.exe
2016-07-30  22:44           184˙732 fftwl-wisdom.exe
2016-07-30  22:44            24˙067 libfftw3-3.def
2016-07-30  22:38         2˙712˙765 libfftw3-3.dll
2016-07-30  22:44            24˙985 libfftw3f-3.def
2016-07-30  22:42         2˙772˙692 libfftw3f-3.dll
2016-07-30  22:44            14˙465 libfftw3l-3.def
2016-07-30  22:44         1˙247˙967 libfftw3l-3.dll
2016-11-20  14:15                 0 lista.txt
2016-07-30  20:21            22˙670 NEWS
2016-07-30  20:21             1˙827 README
2016-07-30  22:44             2˙079 README-bench
2016-07-30  22:44             1˙293 README-WINDOWS
              24 File(s)      8˙720˙463 bytes
               2 Dir(s)  17˙799˙467˙008 bytes free

2 个答案:

答案 0 :(得分:2)

在我看来,应该纠正包含。 由于您已将INCLUDEPATH设置为 c:\ fftw ,您应该使用

#include <fftw3.h>

没有指定子目录。 除非你想以相反的方式去做。

修改 根据{{​​3}}中的示例,您还可以尝试将反斜杠更新为路径中的斜杠。但是,就我在我的环境中检查而言,它在两种情况下都有效。

修改 在作者请求中添加带有Qt和FFTW的示例代码 - 问题未被复制

main.cpp中:

#include <QCoreApplication>
#include <fftw3.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    fftw_complex in[5];

    return a.exec();
}

项目文件:

QT += core gui
CONFIG += c++11

TARGET = FFTW_test
CONFIG += console
CONFIG -= app_bundle

TEMPLATE = app

INCLUDEPATH += c:/Tools/fftw
LIBS += -Lc:/Tools/fftw -lfftw3-3

SOURCES += main.cpp

使用Qt5.3验证Win8.1和作者问题的FFTW。

答案 1 :(得分:0)

好的,我做到了。这似乎是我的错误。

问题:

我使用的是MSVC2013 64位编译器。在FFTW page上有一些信息需要运行lib.exe for VS,目录中有三个def文件。我试图这样做,但我无法做到这一点。我有一些lib.exe问题。

lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def

解决方案:

我已经将Qt版本改为MinGW 32bit并且我下载了32位版本的fftw。现在它完美地运作了

谢谢大家的帮助!