2016-11-20 4 views
1

J'essaye d'ajouter la bibliothèque de FFTW à mon projet de QT. J'ai téléchargé fftw-3.3.5-dll64.zip à partir de page. Après cela, je l'ai décompressé et j'ai copié tous les fichiers dans le répertoire "c: \ fftw". Dans mon cadre de projet, j'ajouté en ligne comme ci-dessousAjouter la bibliothèque FFTW au projet QT

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

Et puis, dans mon mainwindow.h j'inclus comme ci-dessous

#include <fftw/fftw3.h> 

Malheureusement, je ne peux pas reconstruire mon projet. J'ai l'erreur suivante:

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

Avez-vous une idée de ce que je devrais faire? Liste des fichiers dans le répertoire "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 

Répondre

0

Ok, je l'ai fait. Il semble que c'était mon erreur.

Problème:

j'utilisais MSVC2013 compilateur 64 bits. Sur FFTW page il y a des informations que j'ai besoin d'exécuter lib.exe pour VS avec trois fichiers def dans le répertoire. J'essayais de le faire, mais je n'étais pas capable de le faire. J'ai eu quelques problèmes lib.exe.

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

Solution:

J'ai changé dans la construction Qt à MinGW 32bit et je téléchargé la version 32 bits de FFTW. Maintenant, ça fonctionne parfaitement

Merci à tous pour votre aide!

2

Il me semble que l'inclusion devrait être corrigée. Puisque vous avez déjà défini votre INCLUDEPATH à c: \ fftw vous devriez probablement utiliser

#include <fftw3.h> 

sans spécifier le sous-répertoire. Sauf si vous voulez le faire dans l'autre sens.

EDIT: Selon un exemple Qt documentation vous pouvez également essayer de mettre à jour la barre oblique inverse pour réduire dans votre chemin. Cependant, autant que j'ai vérifié dans mon environnement cela fonctionne dans les deux cas.

EDIT: Ajout d'un exemple de code avec Qt et FFTW sur demande des auteurs - numéro non reproduit

main.cpp:

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

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

    return a.exec(); 
} 

fichier du projet:

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 

Vérifié sur Win8.1 avec Qt5.3 et FFTW de la question des auteurs.

+0

Ce n'est pas une solution. Je l'ai vérifié avant aussi. – Tatarinho

+0

Dans ce cas, je dois dire que je ne peux pas reproduire votre problème.J'ai déjà téléchargé le fftw ajouté à un projet vide en fonction de votre description et cela fonctionne bien pour moi. – Dusteh

+0

Pouvez-vous ajouter votre fichier .pro? J'ai vidé le projet en ce moment et ça ne marche toujours pas. Quel est votre système? Quelle version qt? – Tatarinho