みくにまるのブログ

意識低い系ブロガー、みくにまるが送るブログ。

MSYS2/MinGW-w64 のclangで "omp.h" file not found と言われた時の対処法

結論から言うとMinGWのLLVM5.0.1には一部のファイルが足りないので

Windows用のLLVMインストーラーからそれらを引っ張ってくれば動きます。

 

1.LLVM5.0.2をダウンロード

LLVM6.0.0のインストーラーにはOpenMP用のDLLが同梱されていないので

LLVM5.0.2から引っ張って来ます

LLVM Download Page

上記のサイトのLLVM-5.0.2-win64.exeをダウンロードして下さい。

 

2.中身を開く

今回はDLL等が欲しいだけなのでわざわざインストールする必要はありません。

(MinGW64には既にclangが入っている事を前提に話を進めます)

解凍ソフトなどでインストーラーを解凍しておきましょう。

 

3.Mingw64側に中身をぶち込む

ここからはガンガン足りないファイルをぶち込んでいきます。

基本的には上書きはしないでください

あくまで足りないファイルを補うだけなので、変な挙動のリスクを負う必要はありません。

作業1

LLVM-5.0.2-win64.exe\lib\clang\5.0.2\include

中身をごっそり移行omp.h」も上記のフォルダに含まれている

mingw64\lib\clang\5.0.1\include

作業2

LLVM-5.0.2-win64.exe\bin

libomp.dll、libomp5md.dllを移行

mingw64\bin

作業3 ※重要

LLVM-5.0.2-win64.exe\lib

↓libomp.libをlibomp.aにリネームして移行

mingw64\lib

 

以上です!!

作業3とか普通に考えてかる訳がない(笑)

とりあえずはこれでコンパイルには成功するはずです。