Методы не объявлены после включения
-
27-10-2019 - |
Вопрос
Я пытаюсь написать простую программу расчета BPM в C с использованием библиотеки Aubio.
Кажется, все идет гладко, пока я не попытаюсь позвонить aubio_tempo_do
(документация)
К сожалению, Make предоставляет мне ошибку:
‘aubio_tempo_do’ was not declared in this scope
Что, кажется, не имеет слишком большого смысла, учитывая, что библиотека Aubio обеспечивает эту функцию:
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);
Я пытаюсь включить файл tepo.h в свой файл заголовка, но, увы, подпрограмма Make продолжает выпускать ту же ошибку.
// header file
#include <aubio/aubio.h>
#include <aubio/tempo.h>
Какие-нибудь мысли?
== РЕДАКТИРОВАТЬ ===========
Следует также сказать, что я попытался:
#include <aubio/tempo/tempo.h>
Без повезло:
== РЕДАКТИРОВАТЬ ===========
Вывод G ++ с флагом -e для проверки предварительных обработок: http://pastebin.com/mbfeysj2
Исходный код можно найти здесь: http://github.com/kellydunn/grover
Соответствующий исходный код выдержка: http://pastebin.com/krmbzqg4
Решение
Сделайте аргументы, в которые вы передаете aubio_tempo_do
Есть правильные типы?
(aubio_tempo_t *o, fvec_t * input, fvec_t * tempo)
Я не могу сказать по примеру кода.
Если нет, компилятор может жаловаться на то, что он не видит перегруженную версию функции с подписью, которая соответствует вашим аргументам ... (хотя я думаю, что для этой ситуации будет более описательное сообщение об ошибке).
Другие советы
Насколько я вижу, вы должны включить другой файл
#include <aubio/tempo/tempo.h>