我在将程序链接到库时遇到问题。我以前从未这样做过,所以我可能做了一些愚蠢的事情,但据我所知,我正在做正确的事情。我需要将程序 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
)
关于为什么会发生这种情况有什么想法吗?
最佳答案
尝试-lbar
(或者-lhealpix
,如果这是真正的库名称)。
-lxyz
会搜索名为 libxyz.a
的文件。因此,如果您指定 -llibbar.a
,则该文件需要命名为 liblibbar.a.a
。
您还可以简单地在 gfortran 命令行上指定存档文件的路径和全名:gfortran -o foo foo.f90/directory/of/library/libbar.a
关于fortran - gfortran 找不到那里的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11753591/