将FFTW库添加到QT项目

问题描述:

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

之后,我解压缩它,并将所有文件复制到“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 

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

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 

好的,我做到了。看来这是我的错误。

问题:

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

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

解决方案:

我在Qt的建筑改为MinGW的32位和我下载FFTW的32位版本。现在它工作正常

感谢大家的帮助!

在我看来,包括应该纠正。 既然你已经设定了INCLUDEPATH到C:\ FFTW你应该使用

#include <fftw3.h> 

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

编辑: 根据Qt documentation一个例子您也可以尝试更新反斜杠在路径削减。但是,据我检查我的环境它在两种情况下都有效。

编辑: 添加使用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 

验证在Win8.1上用Qt5.3和FFTW从作者提问。

+0

这不是解决方案。我也检查过。 – Tatarinho

+0

在这种情况下,我必须说我不能重现你的问题。根据你的描述,我已经下载了fftw添加到一个空的项目,它对我来说工作得很好。 – Dusteh

+0

你可以添加你的.pro文件吗?我现在做了空项目,但它仍然无法工作。你的系统是什么?哪个qt版本? – Tatarinho