OpenBLAS の Windows でのビルドと .dll ファイルの生成
【概要】
OpenBLAS(オープンソースの BLAS(Basic Linear Algebra Subprograms、基本的な線形代数の演算をまとめたライブラリ)実装)を、Windows 上でソースからビルドし、共有ライブラリ(.dll)とインポートライブラリ(.lib)を生成する手順を説明する。かつて広く使われた GotoBLAS は後藤和茂 氏の TACC 退職にともない開発が終了しており、その後継として GotoBLAS2 を基に開発が続けられているのが OpenBLAS である。新規に利用する場合は OpenBLAS を用いる。
【目次】
【関連する外部ページ】
OpenBLAS 公式のインストール手順:https://www.openmathlib.org/OpenBLAS/docs/install/
【サイト内の関連情報】
ビルドに必要な C/C++ コンパイラ、FORTRAN コンパイラ、ビルドシステムのインストールは、「clang, flang, ninja のインストール」で説明している。
前準備
OpenBLAS を Visual Studio の native ABI 向けにビルドするには、C/C++ コンパイラ(clang-cl)、FORTRAN コンパイラ(flang)、ビルドシステム(Ninja)、および CMake が必要である。LAPACK の関数を含める場合は FORTRAN コンパイラが必要になる。
まず、マイクロソフト C++ ビルドツール (Build Tools) をインストールする。
次に、clang, flang, ninja を「clang, flang, ninja のインストール」の手順でインストールする。これらは Miniforge の conda 環境に導入する。
OpenBLAS のソースの取得
OpenBLAS の GitHub Releases ページから、最新の安定版のソース(.zip または .tar.gz)を入手して展開する。または git で入手する場合は、次を実行する。
git clone https://github.com/OpenMathLib/OpenBLAS.git
cd OpenBLAS
CMake によるビルドと .dll ファイルの生成
-
Windows の Miniforge Prompt(スタートメニューの Miniforge のフォルダにある)を開き、
cdで OpenBLAS のソースディレクトリに移動する。 -
64ビットの MSVC 環境を有効にする。Visual Studio 2026 の Community 版を既定の場所にインストールした場合は、次を実行する(インストール先やバージョンにより読み替える)。
"c:\Program Files\Microsoft Visual Studio\2026\Community\VC\Auxiliary\Build\vcvars64.bat"環境が有効になったことは、
linkと入力して多数のオプション一覧が表示されることで確認できる。 -
CMake で構成する。ソースディレクトリで次を実行する。共有ライブラリ(.dll)を生成するため、
-DBUILD_SHARED_LIBS=ONを付ける(既定では静的ライブラリの .lib だけが作られる)。set "LIB=%CONDA_PREFIX%\Library\lib;%LIB%" set "CPATH=%CONDA_PREFIX%\Library\include;%CPATH%" mkdir build cd build cmake .. -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl -DCMAKE_Fortran_COMPILER=flang -DCMAKE_MT=mt -DBUILD_WITHOUT_LAPACK=no -DNOFORTRAN=0 -DDYNAMIC_ARCH=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -
ビルドする。
cmake --build . --config Release -
生成されたファイルを扱いやすい場所へ配置する。
cmake --install . --prefix c:\opt -vこの例では、
c:\opt\binに共有ライブラリ libopenblas.dll、c:\opt\libに静的ライブラリ、c:\opt\include\openblasにヘッダファイルが配置される。