Les méthodes non déclarées après y compris
-
27-10-2019 - |
Question
Je tente d'écrire un programme de calcul simple bpm en C avec l'aide de la bibliothèque aubio.
Tout semble aller bien jusqu'à ce que je tente de faire appel à aubio_tempo_do
( documentation )
Unfortuantely, make me donne l'erreur:
‘aubio_tempo_do’ was not declared in this scope
qui ne semble pas faire trop de sens, compte tenu de la bibliothèque aubio offre cette fonction:
grep -r "aubio_tempo_do" /usr/local/include/aubio/
/usr/local/include/aubio/tempo/tempo.h:void aubio_tempo_do (aubio_tempo_t *o, fvec_t * input, fvec_t * tempo);
Je tente d'inclure le fichier tempo.h dans mon fichier d'en-tête, mais hélas la routine make continue à gicler la même erreur.
// header file
#include <aubio/aubio.h>
#include <aubio/tempo.h>
Toutes les pensées?
== Modifier ===========
Il faut dire aussi que je l'ai essayé:
#include <aubio/tempo/tempo.h>
pas de chance: \
== Modifier ===========
Sortie de g ++ avec le drapeau -E pour vérifier prétraitements: http://pastebin.com/mbFEysJ2
Le code source est disponible ici: http://github.com/kellydunn/grover
Code source pertinente extrait: http://pastebin.com/KRmbZqg4
La solution
ne les arguments que vous passer à aubio_tempo_do
ont les bons types
(aubio_tempo_t *o, fvec_t * input, fvec_t * tempo)
Je ne peux pas dire à partir du code exemple.
Dans le cas contraire, le compilateur peut se plaindre qu'il ne voit pas une version surchargée de la fonction avec une signature qui correspond à vos arguments ... (Même si je pense qu'il y aurait un message d'erreur plus descriptif pour cette situation) .
Autres conseils
Pour autant que je peux voir, vous devez inclure un autre fichier
#include <aubio/tempo/tempo.h>