Methoden, die nach Einbeziehung nicht deklariert wurden
-
27-10-2019 - |
Frage
Ich versuche, mit der Aubio -Bibliothek ein einfaches BPM -Berechnungsprogramm in C in C zu schreiben.
Alles scheint reibungslos zu laufen, bis ich versuche, mich anzurufen aubio_tempo_do
(Dokumentation)
Leider bietet mir Make mir den Fehler:
‘aubio_tempo_do’ was not declared in this scope
Was nicht zu viel Sinn zu machen scheint, wenn man bedenkt, dass die Aubio -Bibliothek diese Funktion liefert:
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);
Ich versuche, die Tempo.h -Datei in meine Header -Datei aufzunehmen, aber auch die Routine macht weiterhin den gleichen Fehler aus.
// header file
#include <aubio/aubio.h>
#include <aubio/tempo.h>
Irgendwelche Gedanken?
== edit ===========
Es sollte auch gesagt werden, dass ich versucht habe:
#include <aubio/tempo/tempo.h>
Ohne Glück:
== edit ===========
Ausgabe von G ++ mit dem -e -Flag, um die Vorverarbeitungen zu überprüfen: http://pastebin.com/mbfeysj2
Der Quellcode finden Sie hier: http://github.com/kellydunn/grover
Relevanter Quellcodeauszug: http://pastebin.com/krmbzqg4
Lösung
Machen Sie die Argumente, an die Sie übergehen aubio_tempo_do
Haben Sie die richtigen Typen?
(aubio_tempo_t *o, fvec_t * input, fvec_t * tempo)
Ich kann es nicht aus dem Beispielcode erkennen.
Wenn nicht, könnte sich der Compiler beschweren, dass er keine überlastete Version der Funktion mit einer Signatur sieht, die Ihren Argumenten entspricht ... (obwohl ich denken würde, dass es eine beschreibendere Fehlermeldung für diese Situation geben würde).
Andere Tipps
Soweit ich sehen kann, sollten Sie eine andere Datei einschließen
#include <aubio/tempo/tempo.h>