1

我有一个使用一些数学库的 Fortran 文件 my.f90。包含文件和库文件的两个标志在 .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

但是当我尝试在分离步骤中进行编译和链接时,我无法做到。这失败了

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

这里发生了什么?

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 回答