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-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とか普通に考えて分かる訳がない(笑)
とりあえずはこれでコンパイルには成功するはずです。