2012-01-28 22 views
2

netbeansにpthread_barrier_t型を認識させられないようです。私は#include<pthread.h>で入力することができますが、pthread_barrier_tには大丈夫です。 netbeansにpthread_barrier_tの情報を伝える方法

は、ビルドしてエラーです:

g++ -lpthread -c -g -MMD -MP -MF build/Debug/GNU-MacOSX/main.o.d -o build/Debug/GNU-MacOSX/main.o main.cpp main.cpp:32: error: 'pthread_barrier_t' does not name a type

私は、NetBeans 7.1を使用していると私は、私は任意の問題をコンパイルせずにスレッドを作成することができますマックOSX 10.7.2 にしています。

bool isNotInSteadyState() 
{ 
    int rc = 0; 
    threadData threadDataArray[NUM_THREADS]; 
    int dataArrayCount = 0; 
    if (NUM_THREADS < ((PLATE_SIZE - 2) * (PLATE_SIZE - 2))) 
    { 
     for (int i = 1; i < PLATE_SIZE - 1; i += sqrt(NUM_THREADS)) 
     { 
      for (int j = 1; j < PLATE_SIZE - 1; j += sqrt(NUM_THREADS)) 
      { 
       threadDataArray[dataArrayCount].endY = i + sqrt(NUM_THREADS) - 1; 
       threadDataArray[dataArrayCount].x = i; 
       threadDataArray[dataArrayCount].endY = j + sqrt(NUM_THREADS) - 1; 
       threadDataArray[dataArrayCount++].y = j; 
       pthread_t* thread; 

       int pthread_create(thread, NULL,isNotInSteadyStateCheckRunInParallel, &threadDataArray[dataArrayCount]); 
       if (dataArrayCount >= NUM_THREADS) 
       { 
        //pthread_barrier_init(pthread_barrier_t * barrier, 
       //const pthread_barrierattr_t *restrict attr, NUM+THREADS); 
       } 
       if (rc != 0) 
       { 
         fprintf(stderr, "Steady State check failed!\n"); 
       } 
      } 
     } 
    }  

} 

考えられますか?

おかげで、

+1

私はネットビーンを使用していないので、あなたが求めていることは分かりませんが、pthread_barrier_tはコマンドではありません。タイプ。 – Duck

+0

用語が正しく変更されました。 – Will

+1

Netbeansで何らかの「IntelliSense」を取得できること、あるいは 'pthread_barrier_t'を使用しようとするとコンパイラ/ビルドエラーが発生することを意味しますか?後者の場合は、エラー、ツールのバージョン、使用されているプラ​​ットフォームについての詳細をお知らせください。 –

答えて

6

opengroup.org上info about pthread_barriersによると、障害がPOSIX 1003.1版2004のオプション部分的に規定されています。オプションの名前は「(アドバンスドリアルタイムスレッド)」であり、時には「バー、バリア(リアルタイム)」と呼ばれます。

すべてのPOSIXオプションは

2.1.3 POSIX Conformance 
POSIX System Interfaces 
_POSIX_BARRIERS 

The system may support one or more options (see Options) denoted by the following symbolic constants:

ので、_POSIX_BARRIERSマクロは正の数として定義されている場合にのみ、あなたがpthread_barrier_tやpthrad_barrier_waitを使用することができます hereが記載されています。

Mac OS XはPOSIX準拠ですが、実装されているオプションの完全なリストが見つかりません。私はSolarisもpthread_barrierに問題があることを知っています。 There is a postは2006年のApple Mainlingリストにあります。

+2

お役立ち情報これについてはかなり混乱しているようです。 – Duck

+0

それから質問のポイントをアップしてください!ありがとう。 – Will

関連する問題