1

いくつかの数学ライブラリを使用する Fortran ファイル my.f90 があります。インクルード ファイルとライブラリ ファイルの 2 つのフラグは、.csh ファイルで定義されます。

INC_FLAG = "-I$MATH_DIR/include/LIB_ARCH"
LINK_FLAG= "-L$MATH_DIR/lib/lib$LIB.ARCH -Bdynamic -limsl -limslblas"

ターミナルでは、これは完全に正常に機能します

gfortran -o my.o $INC_FLAG my.f90 $LINK_FLAG

しかし、Separates ステップでコンパイルとリンクを実行しようとすると、実行できません。これは失敗します

gfortran -c $INC_FLAG my.f90
gfortran -o my.o $LINK_FLAG

多くのソース ファイル (.f90) があり、コンパイルとリンクが別々に行われるメイクファイルを作成する必要があるため、コンパイルとリンクを別々に行う必要があります。私のメイクファイルも機能しません

 all: my.o
        gfortran -o my.o $(LINK_F90)
 my.o: my.f90
        gfortran $(F90FLAGS) -c my.f90 $<   
 clean: 
        rm my.o

ここで何が起こっているのですか?

4

1 に答える 1

2

gfortran -c $INC_FLAG my.f90オブジェクトをコンパイルしますmy.o。オプション-oは、出力ファイルの名前を指定します - これもmy.oまた (あなたの場合)、これは失敗しなければなりません!

試してみてくださいgfortran -o APPLICATIONNAME my.o $LINK_FLAG

同じことが Makefile にも当てはまります。

于 2013-10-08T06:35:16.360 に答える