2008-03-01

【備忘録】LAPACK のビルド

SourceForge.net Logo
LAPACK (Linear Algebra PACkage) は FORTRAN の線形計算用ライブラリです。MinGW クロスコンパイル環境でビルドする際、インポートライブラリの作成にずいぶん手間取り、3月になってやっと公開出来ました。

mingw-lapack-3.1.1-3

LAPACK 用 DLL のインポートライブラリ作成手順:

[BLAS]
shared: $(OBJS)
i386-mingw32-dllwrap --export-all-symbols $(OBJS) -lgfortran \
--output-def blas.def -o blas.dll
i386-mingw32-dlltool --def blas.def --dllname blas.dll \
--output-lib libblas.dll.a

[LAPACK]
shared: $(OBJS)
i386-mingw32-dllwrap --export-all-symbols $(OBJS) ../blas.dll \
-lgfortran --output-def lapack.def -o lapack.dll
i386-mingw32-dlltool --def lapack.def --dllname lapack.dll \
--output-lib liblapack.dll.a


適当なサンプルをコンパイルして、依存関係をチェックした結果:

$ i386-mingw32-gfortran -o ex101_01.exe ex101_01.f -O2 -llapack -lblas
$ i386-mingw32-objdump -p ex101_01.exe | grep "DLL Name"
DLL Name: KERNEL32.dll
DLL Name: lapack.dll
DLL Name: msvcrt.dll
DLL Name: msvcrt.dll
$ i386-mingw32-objdump -p /usr/local/i386-mingw32/bin/lapack.dll | grep
"DLL Name"

DLL Name: KERNEL32.dll
DLL Name: msvcrt.dll
DLL Name: msvcrt.dll
DLL Name: blas.dll
$

 

0 件のコメント: