我有一个Fortran文件my.f90,它使用了一些数学库。 include和library文件的两个标志在.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)并且需要创建一个makefile,其中编译和链接是分开完成的。我的makefile不起作用
all: my.o
gfortran -o my.o $(LINK_F90)
my.o: my.f90
gfortran $(F90FLAGS) -c my.f90 $<
clean:
rm my.o
这里发生了什么?
答案 0 :(得分:1)
gfortran -c $INC_FLAG my.f90
将编译对象my.o
。选项-o
指定输出文件的名称 - 因为这是my.o
(在您的情况下),这必须失败!
试试gfortran -o APPLICATIONNAME my.o $LINK_FLAG
。
Makefile也是如此。