I metodi non dichiarati dopo compreso
-
27-10-2019 - |
Domanda
Sto cercando di scrivere un programma semplice calcolo bpm in C con utilizzando la libreria aubio.
Tutto sembra andare per il verso liscio fino tento di invitare aubio_tempo_do
( documentazione )
Sfortunatamente, make mi offre l'errore:
‘aubio_tempo_do’ was not declared in this scope
, che non sembra molto senso, considerando la biblioteca aubio prevede questa funzione:
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);
tento di includere il file tempo.h nel mio file di intestazione, ma purtroppo la marca di routine continua a becco fuori lo stesso errore.
// header file
#include <aubio/aubio.h>
#include <aubio/tempo.h>
Qualche idea?
== Modifica ===========
Va anche detto che ho tentato:
#include <aubio/tempo/tempo.h>
senza fortuna: \
== Modifica ===========
Output di g ++ con la bandiera -E per controllare preprocessa: http://pastebin.com/mbFEysJ2
Il codice sorgente può essere trovato qui: http://github.com/kellydunn/grover
codice sorgente rilevanti estratto: http://pastebin.com/KRmbZqg4
Soluzione
Gli argomenti che state attraversando per aubio_tempo_do
hanno i tipi giusti?
(aubio_tempo_t *o, fvec_t * input, fvec_t * tempo)
Non posso dire dal codice di esempio.
In caso contrario, il compilatore potrebbe essere lamentava che non vede una versione di overload della funzione con una firma che soddisfa le vostre argomentazioni ... (Anche se io penso che ci sarebbe stato un messaggio di errore più descrittivo per questa situazione) .
Altri suggerimenti
Per quanto posso vedere si dovrebbe includere un altro file
#include <aubio/tempo/tempo.h>