みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

-fopenmpのコンパイルが通らなくなりました。

とても困っているのでどなたかご存知の方、教えてください。

MACAir OS X 10.8.5を使っています
今まで普通にgccでコンパイルできていたのですが、
急にコンパイルエラーが出るようになりました。
思い当たる節としては、X-codeを新しいバージョン(5.0)にしたことです。

以下のようにOpenmpを実行するためにコンパイルしました。
$gcc -O hello_omp1.c -fopenmp
ld: library not found for -lgomp
clang: error: linker command failed with exit code 1 (use -v to see invocation)

以下は、hello_omp1.cの中身です。
#include<stdio.h>
#ifdef _OPENMP
#include<omp.h>
#endif

int main()
{
#ifdef _OPENMP
printf("procs=%d\n",omp_get_num_procs());
printf("max #threads=%d\n",omp_get_max_threads());
#endif

#ifdef _OPENMP
#pragma omp parallel
{
printf("Hello world %d of %d\n",
omp_get_thread_num(),omp_get_num_threads());
}
#else
printf("Helloworld\n");
#endif
return 0;
}

投稿日時 - 2013-11-21 01:03:24

QNo.8355654

すぐに回答ほしいです

質問者が選んだベストアンサー

細かい調査はしていないのですが、最近のXCodeの更新で、「gcc」というコマンドの本体が clang になっているようです。
> clang: error: linker command failed with exit code 1 (use -v to see invocation
というエラーメッセージからもわかります。

現行XCodeに入っているclangはopenMPに対応していないようです。
コンパイルが通ってリンカが通らないのは、_OPENMPが未定義なためです。

OpenMPに対応させる方法はあるようです
http://clang-omp.github.io/

あるいは、本家のGCC(GNU Compiler Collection)をインストールして、そちらを使いましょう。
MacPorts等からインストールするのが楽でしょう。

投稿日時 - 2013-11-21 07:34:47

お礼

ありがとうございます。
まずXcodeにopenMPを対応させる方法を試してみます。

投稿日時 - 2013-11-21 11:57:52

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

ld: library not found for -lgomp
っていってるんだから, ライブラリがあるかどうかを調べるべし. ソースを出しても全く無意味.

投稿日時 - 2013-11-21 01:53:20

あなたにオススメの質問