2011-01-28 6 views
0

aubioライブラリを使用して、単純なbpm計算プログラムをC言語で作成しようとしています。後に宣言されていないメソッド

あまり意味をなすようには見えません
‘aubio_tempo_do’ was not declared in this scope 

:私はUnfortuantely(documentation

aubio_tempo_do時に呼び出そうとするまで

すべてがエラーを私に提供し、スムーズに行くことに加えらしいです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フラグを持つグラムの

出力++:http://pastebin.com/mbFEysJ2

ソースコードはここで見つけることができます:http://github.com/kellydunn/grover

関連するソースコードの抜粋:私の知る限り、あなたが別のファイル

#include <aubio/tempo/tempo.h> 
+1

GCCのコマンドラインに '-E'フラグ(例えば' gcc -E file.c')を追加し、必要な宣言が含まれているかどうかを確認することで、プリプロセッサの出力を確認できます。 –

+0

-Eフラグを付けてコンパイルした後、出力をチェックし、定義を必要とするコードの前にaubio_tempo_doメソッドが発生していることを確認しました。 –

+0

@kelly:この問題を示すソースコードの完全な例を投稿できますか? 'gcc -E'の出力をpastebin.comにアップロードできますか?あなたが説明したことは、コンパイラのバグによってのみ説明できます。私は非常にそうは思わないでしょう。 –

答えて

1

あなたはaubio_tempo_doに渡している引数は持っているが含まれている必要があり見ることができるようにhttp://pastebin.com/KRmbZqg4

+0

私は考えましたこれはそうかもしれませんが、私の変数型を二重チェックした後、で定義されているものと一致します(正確には

+0

最終的には、 。aubio_tempo_doは実際にはapt-getから入手可能なライブラリに関して非難されました。このメソッドはコンパイルされ、別のパッケージによってソースからインストールされています。 –

1

正しいタイプ?
(aubio_tempo_t *o, fvec_t * input, fvec_t * tempo) サンプルコードからわかりません。

もしそうでなければ、コンパイラはあなたの引数と一致するシグネチャを持つ関数のオーバーロードされたバージョンを見ていないと不平を言っている可能性があります...(私はその状況についてより説明的なエラーメッセージがあると思います)。

+0

私の謝罪、私もこれを無駄に使ってみました〜 –

関連する問題