メジャーを計算するために C ルーチンを必要とする FORTRAN コードがあります。C ルーチンには .c および .h ファイルが含まれており、ドキュメントには次のように書かれています。
ハイパーボリューム関数を独自の C/C++ コードに組み込みたい場合、ハイパーボリュームを計算するためのメイン関数 (
fpli_hv
) は、ファイルに含まれていますhv.c
。これを独自のコードに追加する簡単な方法は、Makefile.lib を Makefile にインクルードし、.lib に対してリンクすることfpli_hv.a
です。エクスポートされた関数は次のとおりです:"
double fpli_hv(double *front, int d, int n, double *ref);
makefile.lib も次のとおりです。
VARIANT ?= 4
HV_SRCS = hv.c
HV_HDRS = hv.h
HV_OBJS = $(HV_SRCS:.c=.o)
HV_LIB = fpli_hv.a
$(HV_LIB): $(HV_OBJS)
@$(RM) $@
$(QUIET_AR)$(AR) rcs $@ $^
## Augment CFLAGS for hv.[co] objects
hv.o: CPPFLAGS += -D VARIANT=$(VARIANT)
## Dependencies:
$(HV_OBJS): $(HV_HDRS)
この C ルーチンを FORTRAN メイクファイルに埋め込むにはどうすればよいですか? おそらく説明的な例を提供することで、私を助けていただけませんか。この問題を検索したところ、いくつかの例が見つかりましたが、すべて makefile の操作を必要としない単純な例を示していました。