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).
-lxyz
results in a search for a file named libxyz.a
. Consequently, if you specify -llibbar.a
then the file needs to be named liblibbar.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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With