2016-11-20 191 views
1

我試圖將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 

回答

0

好的,我做到了。看來這是我的錯誤。

問題:

我正在使用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位版本。現在它工作正常

感謝大家的幫助!

2

在我看來,包括應該糾正。 既然你已經設定了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