我在Fortran 90中有三个单独的程序,每个程序都有一个模块(.mod
文件),并且位于不同的目录中,但是每个程序都具有相同的名称module.f90
,可以作为共享库编译为跟随:
gfortran -Wall -fPIC -c module.f90
gfortran -fPIC -shared module.o -o libmodule.so
,然后添加到存档
ar rc libmodule.a *.so
并在主程序的目录中,链接到主代码的库如下:
gfortran -I /path/to/main/dir../modDir -c main.f90
gfortran main.o -L/path/to/main/dir../modDir -lmodule -o main -Wl,-rpath=/path/to/main/dir/../modDir
,并且这些步骤针对三个模块和主程序完成,但是正如我提到的,这些模块具有相同的名称。由于它们是共享库(尽管它们位于不同的路径中),因此在链接步骤中是否会出现问题? 我知道我可以轻松更改模块的名称,但是出于好奇,我提出了这个问题。