「OpenMPのプログラムをclangでコンパイルする方法」の版間の差分

提供: C言語入門
移動: 案内検索
(ページの作成:「Ubuntuでclang-4.0を使い、OpenMPを使ったコードをコンパイルするときに、 omp.h が not found だ、とエラーが出て、コンパイルが失敗...」)
 
(相違点なし)

2017年9月5日 (火) 23:50時点における最新版

Ubuntuでclang-4.0を使い、OpenMPを使ったコードをコンパイルするときに、 omp.h が not found だ、とエラーが出て、コンパイルが失敗しました。対処方法を紹介します。

読み方

clang
くらんぐ
OpenMP
おーぷんえむぴー

概要

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
$

関連項目