OpenMPのプログラムをclangでコンパイルする方法
提供: C言語入門
スポンサーリンク
Ubuntuでclang-4.0を使い、OpenMPを使ったコードをコンパイルするときに、 omp.h が not found だ、とエラーが出て、コンパイルが失敗しました。対処方法を紹介します。
読み方
概要
Ubuntu の環境で、 clang コンパイラを利用して、C言語のプログラムをコンパイルした時の例です。 C言語のプログラムでは、 omp.h のヘッダファイルをインクルードしています。
clang-4.0 -fopenmp -I/usr/include/clang/4.0/include openmp_for.c openmp_for.c:10:10: fatal error: 'omp.h' file not found #include <omp.h> ^~~~~~~ 1 error generated.
omp.h のヘッダファイルがないと言われています。
インストール
Ubuntu の場合は、 libomp-dev のパッケージが必要になります。
sudo apt install libomp-dev
インストールされたファイルは以下の通りです。
$ dpkg -l libomp-dev 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)保持 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留 |/ エラー?=(空欄)無/(R)要再インストール (状態,エラーの大文字=異常) ||/ 名前 バージョン アーキテクチャ 説明 +++-====================-===============-===============-============================================= ii libomp-dev 3.7.0-3 amd64 LLVM OpenMP runtime - dev package $ dpkg -L libomp-dev /. /usr /usr/share /usr/share/doc /usr/share/doc/libomp-dev /usr/share/doc/libomp-dev/copyright /usr/lib /usr/lib/x86_64-linux-gnu /usr/include /usr/include/omp.h /usr/share/doc/libomp-dev/changelog.Debian.gz /usr/lib/x86_64-linux-gnu/libomp.so /usr/lib/x86_64-linux-gnu/libiomp5.so /usr/lib/x86_64-linux-gnu/libgomp.so
実行例
libomp-dev を入れれば、このように解決します。
$ clang-4.0 -fopenmp -I/usr/include/clang/4.0/include openmp_for.c $
関連項目
ツイート
スポンサーリンク