2015-12-04 2 views
0

J'ai inclus le fichier d'en-tête de fftw3 #include "fftw-3.3.4/api/fftw3.h" répertoire -same que le reste des fichiers d'en-tête, mais quand je tente de compiler je reçois une erreur pour toutes les fonctions de FFTW:compilez FFTW erreur C++

error: ‘fftwnd_destroy_plan’ was not declared in this scope 

Dois-je mettre une déclaration devant chaque fonction comme opencv utilise "cv::"? Et si oui, lequel est-ce?

Répondre

2

On dirait que vous essayez de compiler un vieux FFTW 2 code exemple à l'aide FFTW 3. fftwnd_destroy_plan était en FFTW 2, mais est obsolète dans FFTW 3. Voir la FFTW 3 documentation regarding upgrading from FFTW 2 to FFTW 3, en particulier la section sur les plans:

FFTW 2 avait des types de données séparés fftw_plan, fftwnd_plan, rfftw_plan, et rfftwnd_plan pour les transformations complexes et réelles unidimensionnelles et multidimensionnelles, et chaque type avait sa propre fonction «détruire». Dans FFTW 3, tous les plans sont de type fftw_plan et tous sont détruits par fftw_destroy_plan(plan).


TL; DR: changement fftwnd_destroy_plan- fftw_destroy_plan.

+0

Merci! C'était l'erreur .. maintenant avez-vous une idée comment lier -lfftw3f en permanence – Skonitsa

+0

Que voulez-vous dire par "lien de façon permanente"? –