Generally, while installing libraries like lapack, blas, I just run the makefile and then they get automatically installed. To link them with my gfortran compiler, gfortran -llapack or gfortran -lblas flags are enough to link them. But when I installed this slatec library using make, by giving the flag gfortran -lslatec, nothing happended and it gave error that cannot find slatec. How to install it properly?
This is the library.
1 Answer
The command
make FC=gfortran all builds the libraries in a local lib/ directory:
$ ls lib/ libslatec.a libslatec-dbvp.a libslatec-sbvp.a libslatec.so libslatec.so.4 libslatec.so.4.1.1 If you want to link the library when building your own program, you will need to tell the compiler where to find it by supplying an additional library search path
gfortran . . . -L path/to/slatec/lib/ -lslatec or copy the library/libraries to somewhere on the default library search path such as /usr/local/lib - the slatec Makefile provides an install target to do exactly that, as you can see by running make -n install
$ make -n install install -d /usr/local/lib install -m644 -t /usr/local/lib \ lib/libslatec.a lib/libslatec-dbvp.a lib/libslatec-sbvp.a install -m755 -t /usr/local/lib lib/libslatec.so.4.1.1 cp -P lib/libslatec.so lib/libslatec.so.4 \ /usr/local/lib so you'd do
sudo make install To run programs that are linked against a new shared library, you may additionally need to run
sudo ldconfig in order to update the dynamic linker cache.
2