通常,在安装 lapack、blas 等库时,我只需运行 makefile,它们就会自动安装。要将它们与我的 gfortran 编译器链接,gfortran -llapack 或 gfortran -lblas 标志就足以链接它们。但是当我使用 make 安装此 slatec 库时,通过给出标志 gfortran -lslatec,什么也没发生,并且出现无法找到 slatec 的错误。如何正确安装它?
https://github.com/Rufflewind/slatec
这就是图书馆。
答案1
命令
make FC=gfortran all
在当地的 lib/
目录:
$ ls lib/
libslatec.a libslatec-dbvp.a libslatec-sbvp.a libslatec.so libslatec.so.4 libslatec.so.4.1.1
如果要在构建自己的程序时链接库,则需要通过提供额外的库搜索路径来告诉编译器在哪里找到它
gfortran . . . -L path/to/slatec/lib/ -lslatec
或者将库复制到默认库搜索路径的某个位置,例如/usr/local/lib
- slatec Makefile 提供了一个install
目标来执行此操作,您可以通过运行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
所以你会这样做
sudo make install
要运行链接到新共享库,你可能还需要运行
sudo ldconfig
为了更新动态链接器缓存。