包含后未声明的方法

时间:2011-01-28 21:48:16

标签: c bpm undeclared-identifier aubio

我正在尝试使用aubio库在C中编写一个简单的bpm计算程序。

在尝试调用aubio_tempo_dodocumentation)之前,一切似乎都很顺利

不幸的是,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>

没有运气:\

==编辑===========

使用-E标志输出g ++以检查预处理:http://pastebin.com/mbFEysJ2

可在此处找到源代码:http://github.com/kellydunn/grover

相关源代码摘录:http://pastebin.com/KRmbZqg4

2 个答案:

答案 0 :(得分:1)

据我所知,你应该包含另一个文件

#include <aubio/tempo/tempo.h>

答案 1 :(得分:1)

您传递给aubio_tempo_do的参数是否具有正确的类型?
(aubio_tempo_t *o, fvec_t * input, fvec_t * tempo) 我无法从示例代码中看出。

如果没有,编译器可能会抱怨它没有看到带有与您的参数匹配的签名的函数的重载版本...(虽然我认为对于那种情况会有更具描述性的错误消息)