I’m having trouble linking my program to a library. I’ve never done this before so I’m probably doing something stupid, but as far as I can tell I’m doing the right thing. I need to link my program foo.f90 to a library libbar.a which is in a directory elsewhere below my home directory. I enter the command:
gfortran -c foo.f90
gfortran -o foo foo.f90 -L/directory/of/library -llibbar.a
But this throws:
ld: library not found for -llibhealpix.a
Where of course libhealpix.a is the real library (rather than libbar.a)
Any ideas as to why this would occur?
Try
-lbar(or perhaps-lhealpix, if that’s the real library name).-lxyzresults in a search for a file namedlibxyz.a. Consequently, if you specify-llibbar.athen the file needs to be namedliblibbar.a.a.You could also simply specify the path and full name of the archive file on the gfortran command line:
gfortran -o foo foo.f90 /directory/of/library/libbar.a