2017-02-10 22 views
0

プロジェクトをコンパイルしようとしていますが、このエラーはthread.hで発生しています。エラー:不明な型名 'pthread_mutex_t'

inc/thread.h:38:15: error: unknown type name 'pthread_mutex_t' 

私はthread.hで見たとき、私は以下を参照してください。

#include <pthread.h> 
#include "rel_assert.h" 
#define MUTEX pthread_mutex_t 

それは、エラーの原因となっている最後の行です。 検索後、pthreadtypes.hにpthread_mutex_t構造体の定義があるので、それを含めるようにしました。それから私は、次のエラー:私は代わりに<sys/types.h>が含まれている場合

inc/pthreadtypes.h:16:3: error: #error "Never include <bits/pthreadtypes.h> directly; use <sys/types.h> instead." inc/pthreadtypes.h:23:24: fatal error: bits/sched.h: No such file or directory compilation terminated.

、私は戻って私の元のエラーにしています。 これをどのように解決するか考えてください。

UPDATE1 は、このように私のメインの初めにそれを定義しようとしました:私は、スタンドアロンCファイルを実行すると、コマンドラインからgccでコンパイルするとき

#include <pthread.h> 
//#include <libbladeRF.h> 
#include <sys/types.h> 

int main() 
{ 

pthread_mutex_t m; 
return 0; 
} 

これは実際に動作します。しかし、プロジェクトでは私はエラーが発生します。私はプロジェクトを作成するときに間違ったことをしているに違いない。もう一度やり直します。

+1

エラーが表示されたように: 'の代わりに' ' –

+0

あなたはどのファイルを含んでいますか? –

+1

'#define'を使わずに' pthread_mutex_t MUTEX'を入れてみてください –

答えて

0

「pthread.hの」と「SYS/types.hで」ヘッダファイルを含めた後、あなたはすべての問題を見てはいけません。あなたは、コードのこの部分を構築している環境を確認越えることができることがございます。

コードをコンパイルしているときに 'pthread'ライブラリを使用しています( "-lpthread"オプションを使用してください)。

+0

どこに追加しますか? 私はこのようにしようとしました: 'nios2-elf-gcc -xc -lpthread -MP -MMD -c' –

+0

コード内にそれらのヘッダファイルをインクルードする必要がありますが、あなたはすでにそれを行っています。コンパイルしようとしている環境について教えてください。あなたの環境を一度確認しなければならないかもしれません。 –