5

この質問は、インターネットのどこを探しても見つかりません。したがって、私のリンカー エラーは次のとおりです。アーキテクチャ x86_64 の未定義のシンボル: "_omp_get_thread_num()"

これは私のコードです:

int nthreads;
int tid;
#pragma omp parallel private(tid)
{
    tid = omp_get_thread_num();
    if (tid == 0) 
    {
        nthreads = omp_get_num_threads();
        printf("number of threads: %d\n", nthreads);
    }
}
4

3 に答える 3

5

-fopenmpフラグを使用してopenmpを使用することをコンパイラに伝えるのを忘れたようです。あなたの例はmac osx lionのようにうまくコンパイルされg++ test.cpp -fopenmp -o testます

于 2012-09-19T18:50:40.793 に答える
3

このような問題を診断するのは困難です。リンカがライブラリを見つけられないと思います。リンカー ライブラリに libgomp を追加します。

オブジェクトを取得するには、ライブラリをリンクする必要があります。

ここでの同様の問題:

http://www.eclipse.org/forums/index.php/m/901477/

さらにインターネット経由で。理由はリンクされたライブラリではありません。

次を追加することでそれを行うことができます:-fopenmp

GCCで。

于 2012-09-19T18:43:05.833 に答える