Методы, не объявленные после включения - PullRequest
0 голосов
/ 29 января 2011

Я пытаюсь написать простую программу расчета ударов в минуту на языке Си с использованием библиотеки 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);

Я пытаюсь включить файл tempo.h в мой заголовочный файл, но, увы, подпрограмма make продолжает выдавать ту же ошибку.

// header file
#include <aubio/aubio.h>
#include <aubio/tempo.h>

Есть мысли?

== Edit ===========

Следует также сказать, что я пытался:

#include <aubio/tempo/tempo.h>

Без удачи: \

== Редактировать ===========

Вывод g ++ с флагом -E для проверки предварительных процессов: http://pastebin.com/mbFEysJ2

Исходный код можно найти здесь: http://github.com/kellydunn/grover

Соответствующая выдержка из исходного кода: http://pastebin.com/KRmbZqg4

Ответы [ 2 ]

1 голос
/ 29 января 2011

имеют ли аргументы, которые вы передаете aubio_tempo_do, правильные типы?
(aubio_tempo_t *o, fvec_t * input, fvec_t * tempo) Я не могу сказать из примера кода.

Если нет, компилятор может жаловаться, что онне видит перегруженной версии функции с сигнатурой, соответствующей вашим аргументам ... (хотя я думаю, что для этой ситуации будет более описательное сообщение об ошибке).

1 голос
/ 29 января 2011

Насколько я вижу, вы должны включить другой файл

#include <aubio/tempo/tempo.h>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...