在单独的步骤中编译和链接

时间:2013-10-08 05:49:17

标签: compilation linker makefile fortran fortran90

我有一个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

这里发生了什么?

1 个答案:

答案 0 :(得分:1)

gfortran -c $INC_FLAG my.f90将编译对象my.o。选项-o指定输出文件的名称 - 因为这是my.o(在您的情况下),这必须失败!

试试gfortran -o APPLICATIONNAME my.o $LINK_FLAG

Makefile也是如此。