fortranにおけるライブラリ指定の仕方¶
自作ライブラリの作成¶
まずは普通にプログラムを作成する.それをコンパイル.
gfortran -c test_source.f90
ar(archive)コマンドを使ってライブラリ化する.
ar cr testlib.a *.o
ちなみにcは作成(create)で,rは置換(Replacement)で古いファイルを置換する. ライブラリ使用時は直接指定
gfortran -o trylib.f90 ./testlib/testlib.a
もしくは-l及び-Lオプションを使う.-lオプションを使うにはlib~~~.aという名前でなければならないから,
mv testlib.a libtest.a
を行ってから,
gfortran -o trylib.f90 -Ltestlib -ltest
とすれば良い.
Links : https://docs.oracle.com/cd/E19205-01/820-1203/aeudl/index.html
python ライブラリでの blas 、他ライブラリの 使用¶
python ライブラリで blasをリンクしておかないと、blasが使えない.
gfortran などで、blasを陽に指定する際は、以下のような makefile を書くと良い.
1target = ../pylib.so
2object = \
3 linearInterp.f90 \
4 barycentric__interpolator.f90 \
5 interpolate__fromTriMesh.f90 \
6 cubicinterpolation_3d.f90 \
7 interpolate__trilinear.f90
8
9FC = gfortran
10FFLAGS = -O3 -llapack -lblas
11LDFLAGS =
12ARCHIVE = /usr/local/lib/libopenblas.a
13
14# FC = ifort
15# FFLAGS = -O3 -mkl
16# LDFLAGS =
17# ARCHIVE =
18
19PYFLAGS = -fPIC -shared
20
21.SUFFIXES: .so .f90
22$(target): $(object)
23 $(FC) -o $(target) $(LDFLAGS) $(PYFLAGS) $(FFLAGS) $(object) $(ARCHIVE)
24
25.PHONY:all clean
26clean:
27 $(RM) $(target)
28all: clean $(target)
基本的には、 libopenblas.a etc. をフルパスで与えれば良い.