如果某些程序使用相同名称的库会发生什么

时间:2019-08-02 04:48:34

标签: linker shared-libraries

我在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

,并且这些步骤针对三个模块和主程序完成,但是正如我提到的,这些模块具有相同的名称。由于它们是共享库(尽管它们位于不同的路径中),因此在链接步骤中是否会出现问题? 我知道我可以轻松更改模块的名称,但是出于好奇,我提出了这个问题。

0 个答案:

没有答案