Я пытаюсь написать простую программу расчета ударов в минуту на 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);
Я пытаюсь включить файл tempo.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
-E
в командную строку GCC (например,gcc -E file.c
) и посмотрев, включаются ли необходимые объявления или нет. - person Adam Rosenfield   schedule 29.01.2011gcc -E
на pastebin.com? То, что вы описали, можно объяснить только ошибкой компилятора, что я считаю маловероятным. - person Adam Rosenfield   schedule 29.01.2011<cstdlib>
и используйте вместо него<stdlib.h>
; если вы пишете на C++, измените имя исходного файла наgrover.cc
. Я подозреваю, что это может быть связано с вашей проблемой, хотя это может быть что-то еще. - person Adam Rosenfield   schedule 29.01.2011/usr/local/include/aubio
вместо/usr/include/aubio
- person kelly.dunn   schedule 30.01.2011