Métodos no declarados después de incluir
-
27-10-2019 - |
Pregunta
Estoy intentando escribir un programa de cálculo de BPM simple en C con el uso de la biblioteca Aubio.
Todo parece ir bien hasta que intente llamar aubio_tempo_do
(documentación)
Desafortunadamente, hacer me proporciona el error:
‘aubio_tempo_do’ was not declared in this scope
Lo que no parece tener demasiado sentido, considerando que la biblioteca Aubio proporciona esta función:
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);
Intento incluir el archivo Tempo.h en mi archivo de encabezado, pero, por desgracia, la rutina Make continúa lanzando el mismo error.
// header file
#include <aubio/aubio.h>
#include <aubio/tempo.h>
¿Alguna idea?
== editar ===========
También se debe decir que he intentado:
#include <aubio/tempo/tempo.h>
Sin suerte:
== editar ===========
Salida de G ++ con el indicador -e para verificar los preprocesos: http://pastebin.com/mbfeysj2
El código fuente se puede encontrar aquí: http://github.com/kellydunn/grover
Extracto de código fuente relevante: http://pastebin.com/krmbzqg4
Solución
hacer los argumentos a los que está pasando aubio_tempo_do
¿Tienes los tipos correctos?
(aubio_tempo_t *o, fvec_t * input, fvec_t * tempo)
No puedo decir desde el código de muestra.
Si no, el compilador podría quejarse de que no ve una versión sobrecargada de la función con una firma que coincida con sus argumentos ... (aunque creo que habría un mensaje de error más descriptivo para esa situación).
Otros consejos
Por lo que puedo ver, debe incluir otro archivo
#include <aubio/tempo/tempo.h>