Compilation 分步骤编译和链接

Compilation 分步骤编译和链接,compilation,linker,makefile,fortran,fortran90,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 但是,当我试图分步进行编译和链接时

我有一个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
但是,当我试图分步进行编译和链接时,我无法做到这一点。这失败了

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
all:my.o
gfortran-o my.o$(链接F90)
my.o:my.f90
gfortran$(F90FLAGS)-c my.f90$<
清洁:
我的房间

这里发生了什么?

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

请尝试
gfortran-o应用程序名称my.o$LINK\u标志


Makefile也是如此

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

请尝试
gfortran-o应用程序名称my.o$LINK\u标志


Makefile也是如此

不要担心让单独的步骤与Make一起工作,直到你可以让它们在没有Make的情况下工作。不要担心让单独的步骤与Make一起工作,直到你可以让它们在没有Make的情况下工作。我已经尝试了
gfortran-o plz_工作my.o$LINK_FLAG
gfortran-o plz_工作.o my.o$LINK_FLAG
和编译器说IPO链接:找不到”(“gfortran:error:多文件优化编译期间出现问题(代码1)使用
gfortran-o plz_work my.o
,生成的文件将是可执行文件…你的
$LINK_标志是什么?我文章的第三行将
LINK_标志定义为库文件的位置。
gfortran-o plz_work my.o
给出的错误与使用
gfortran-o plz_work my.o$LINK_标志时的错误相同ust的意思是链接器无法链接到源库。链接到库文件的合适语法是什么?我已经尝试了
gfortran-o plz_-work my.o$link_-FLAG
gfortran-o plz_-work.o my.o$link_-FLAG
,编译器说IPO-link:cannot find“(”gfortran:错误:多文件优化编译期间出现问题(代码1)使用
gfortran-o plz_work my.o
,生成的文件将是可执行文件…你的
$LINK_标志是什么?我文章的第三行将
LINK_标志定义为库文件的位置。
gfortran-o plz_work my.o
给出的错误与使用
gfortran-o plz_work my.o$LINK_标志时的错误相同ust表示链接器无法链接到源库。链接到库文件的适当语法是什么?