将 FFTW 库添加到 QT 项目中
Add FFTW library to QT project
我正在尝试将 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
你知道我该怎么做吗? "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
在我看来,包含应该更正。
由于您已经将 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 进行验证。
好的,我做到了。看来是我弄错了。
问题:
我使用的是 MSVC2013 64 位编译器。在 FFTW page 上有我需要 运行 lib.exe 的信息,用于目录中有三个 def 文件的 VS。我试图那样做,但我做不到。我有一些 lib.exe 问题。
lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def
解决方案:
我已经在 Qt 构建中更改为 MinGW 32 位,并且我下载了 32 位版本的 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
你知道我该怎么做吗? "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
在我看来,包含应该更正。 由于您已经将 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 进行验证。
好的,我做到了。看来是我弄错了。
问题:
我使用的是 MSVC2013 64 位编译器。在 FFTW page 上有我需要 运行 lib.exe 的信息,用于目录中有三个 def 文件的 VS。我试图那样做,但我做不到。我有一些 lib.exe 问题。
lib /def:libfftw3-3.def
lib /def:libfftw3f-3.def
lib /def:libfftw3l-3.def
解决方案:
我已经在 Qt 构建中更改为 MinGW 32 位,并且我下载了 32 位版本的 fftw。现在一切正常
感谢大家的帮助!