2016-05-04 8 views
0

Macにsphinxbaseとpocketsphinxの最新バージョンをインストールしました。このCMUのsite では、インストールの妥当性をテストするための単純なhello worldコードを提供しています。コードは次のようになります。Macのpocketsphinx:stdio.hのGCCスローエラー

#include <pocketsphinx.h> 

int main(int argc, char *argv[]) 
{ 
    ps_decoder_t *ps = NULL; 
    cmd_ln_t *config = NULL; 

    config = cmd_ln_init(NULL, ps_args(), TRUE, 
      "-hmm", MODELDIR "/en-us/en-us", 
      "-lm", MODELDIR "/en-us/en-us.lm.bin", 
      "-dict", MODELDIR "/en-us/cmudict-en-us.dict", 
      NULL); 

    return 0; 
} 

と私はGCC

のpkg-config設定には、ライブラリ・パスについての世話をするだろう
gcc -o hello_ps hello_ps.c \ 
-DMODELDIR=\"`pkg-config --variable=modeldir pocketsphinx`\" \ 
`pkg-config --cflags --libs pocketsphinx sphinxbase` 

を使用してコンパイルするには、以下のコマンドを入力する必要があります。

しかし、stdio.hファイル(pocketsphinx.hにはstdio.hが含まれています)に次のエラーが返されます。

Restrict requires a pointer or reference (int is invalid) 
いくつかの場所で

とも

Unknown typename _FILE (Expanded from macro 'FILE') 

私はstdio.hのファイルを経て、これらの対応する文を発見し、私はそれが何をするか見当もつかない。私はを制限しています。キーワードはC++標準の一部ではありませんが、c99でコンパイルしても、同じエラーが発生します。どんな助けも高く評価されます。

+0

私はあなたがコンパイラが壊れていると思う、あなたはFILEとstdio.hで簡単なプログラムをコンパイルし、それが動作するかどうかを調べるかもしれない。 –

+0

これは、単純なファイル読込みプログラムで動作しています。 – vishnu

+0

また、Clangのような他のコンパイラを試してみましたが、同じエラーが再び発生しました。 – vishnu

答えて

0

ログによれば、標準インクルードファイルではない追加ファイル/usr/local/include/stdio.hがあります。このファイルは他のソフトウェアによってインストールされており、問題が発生します。

システムから問題のあるstdio.h(およびその他の余分なヘッダーなど)を削除する必要があります。

正しいstdio.hは/usr/include folderです。

+0

ええ、私はusr/local/includeから不要なファイルを削除しました。どうもありがとうございます !! – vishnu

関連する問題