2016-03-27 1 views
1

私は自分のプロジェクトでオープンmpの使用を開始しようとしています。 は、私はそのようなコードを持っている:オープンmpを使用中にコンパイルエラー

#pragma omp for 
for (i = 0; i < 16; i++) { 
    resBuf[i] = buf1[i]^buf2[i]; 
} 

私はファイルの先頭に<omp.h.>が含まれています。 はまた、私はメイクに異なるフラグとその組み合わせを使用してみました:

FLAGS = -Wall -g -fopenmp -lgomp -fgomp 
CC = gcc 

まだ動作しません。次の問題があります。

undefined reference to `omp_get_num_threads' 
undefined reference to `omp_get_thread_num' 
undefined reference to `GOMP_barrier' 

私を助けてくれますか?

+0

'-fopenmp'でコンパイルします。 –

答えて

3

だけで行う必要がありますgccのコマンドラインに-fopenmp持つ:https://www.dartmouth.edu/~rc/classes/intro_openmp

私はあなたのプロジェクトが別々のコンパイルを持っており、ステップと-fopenmpを結ぶリンクコマンドラインから欠落していると思うだろう。メイクファイルにLDFLAGS行がない場合は、LDFLAGS = -fopenmp行を追加してください。そうでない場合は、その行に-fopenmpを追加してください。

+1

あなたが正しいです、私は実際にリンカにも-fopenmpフラグを与えるのを忘れていました。今それは正常に動作します。ありがとう! – Artyom

関連する問題