我无法将程序链接到库中。我之前从未这样做过,所以我可能做了一些愚蠢的事情,但据我所知,我做的是正确的事情。我需要将我的程序foo.f90
链接到库libbar.a
,该库位于我的主目录下的其他目录中。我输入命令:
gfortran -c foo.f90
gfortran -o foo foo.f90 -L/directory/of/library -llibbar.a
但是这引发了:
ld: library not found for -llibhealpix.a
当然libhealpix.a
是真实的图书馆(而不是libbar.a
)
关于为什么会发生这种情况的任何想法?
答案 0 :(得分:13)
尝试-lbar
(或者-lhealpix
,如果那是真正的图书馆名称)。
-lxyz
会搜索名为libxyz.a
的文件。因此,如果您指定-llibbar.a
,则该文件需要命名为liblibbar.a.a
。
您还可以在gfortran命令行中指定存档文件的路径和全名:gfortran -o foo foo.f90 /directory/of/library/libbar.a