0

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

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>

没有运气:\

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

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

源代码可以在这里找到:http: //github.com/kellydunn/grover

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

4

2 回答 2

1

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

#include <aubio/tempo/tempo.h>
于 2011-01-28T21:58:10.220 回答
1

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

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

于 2011-01-29T01:49:21.950 回答