我是初学者Fortran程序员。我无法将静态库链接到Fortran程序。在模块rce_world.f90
中,我调用了库libcamclouds.a
中定义的函数。我收到一个错误,表明函数未定义。
我不认为我在Makefile中正确链接库,并且/或者在实际的Fortran模块中有一些我缺少的外部调用(我们不需要在模块中提供“use” ?)。任何帮助将不胜感激。
我的Makefile是:
#Defining Variables
objects = homme_lat_lon.o cam_grid.o cam_variables.o rce_world.o initial.o
FC = gfortran
LIBDIR = -L/glade/p/work/aherring/RCE_world_initial/no_SICTHK/moistplume/cam5wv/cfcode_for_adam/
LIBNAM = -lcamclouds
#Makefile
out_data: $(objects)
$(FC) -g -o out_data $(objects) $(LIBDIR) $(LIBNAM) -I/sw/include
homme_lat_lon.mod: homme_lat_lon.o homme_lat_lon.f90
$(FC) -g -c homme_lat_lon.f90
homme_lat_lon.o: homme_lat_lon.f90
$(FC) -g -c homme_lat_lon.f90
cam_grid.mod: cam_grid.o cam_grid.f90
$(FC) -g -c cam_grid.f90
cam_grid.o: cam_grid.f90
$(FC) -g -c cam_grid.f90
cam_variables.mod: cam_variables.o cam_variables.f90
$(FC) -g -c cam_variables.f90
cam_variables.o: cam_variables.f90
$(FC) -g -c cam_variables.f90
rce_world.mod: cam_grid.mod cam_variables.mod rce_world.o rce_world.f90
$(FC) -g -c rce_world.f90
rce_world.o: cam_grid.mod cam_variables.mod rce_world.f90
$(FC) -g -c rce_world.f90
initial.o: homme_lat_lon.mod cam_grid.mod cam_variables.mod rce_world.mod initial.f90
$(FC) -g -c initial.f90
错误日志:
rce_world.o: In function __rce_world_MOD_rce_initial': /glade/p/work/aherring/RCE_world_initial/no_SICTHK/moistplume/cam5wv/cfcode_for_
adam/rce_world/rce_world.f90:168: undefined reference to aqsat_' collect2: ld returned 1 exit status make: *** [out_data] Error £