Debian下Fortran库怎么管理
导读:Debian 下 Fortran 库的管理实践 一 系统库与编译器管理 使用 APT 安装与维护系统级库与编译器,保持索引与系统更新:sudo apt update && sudo apt upgrade。 安装编译器与常...
Debian 下 Fortran 库的管理实践
一 系统库与编译器管理
- 使用 APT 安装与维护系统级库与编译器,保持索引与系统更新:sudo apt update & & sudo apt upgrade。
- 安装编译器与常用运行库:sudo apt install gfortran libgfortran-< 版本> -dev(开发包提供链接所需的 .mod 与链接文件)。
- 查询与定位包:apt search/show < 关键词> ;apt-file list < 包名> 可查看包内文件(需先 sudo apt install apt-file & & sudo apt-file update)。
- 卸载与清理:sudo apt remove < 包名> ;sudo apt purge < 包名> (连同配置清理);sudo apt autoremove(移除不再需要的依赖)。以上命令同样适用于库包的维护。
二 查找库文件与模块文件
- 库文件通常位于:/usr/lib、/usr/lib/x86_64-linux-gnu、/usr/local/lib;运行时还会搜索 /lib、/lib64。
- 查找共享库:find /usr -name “lib*.so*”
- 查找模块文件(Fortran 90+ 的 .mod):find /usr -name “*.mod”
- 若库不在标准路径,构建/运行时应通过编译与运行期参数显式指定搜索路径(见下一节)。
三 构建与使用库的两种方式
- 使用系统库(推荐)
- 安装库的开发包(含头文件与链接文件),例如:sudo apt install libopenblas-dev liblapack-dev。
- 编译与链接示例:gfortran -O2 main.f90 -lopenblas -llapack
- 说明:库名映射规则为 -lname 对应 libname.so;链接器会自动在系统库路径中查找。
- 自建库(便于项目内共享)
- 生成模块与共享库(.mod 与 .so):
- gfortran -shared -fPIC -o libt.so t_mod.f90 t_mod_sub.f90
- 使用自建库:
- 编译阶段:gfortran -c t_main.f90 -I/path/to/mods
- 链接阶段:gfortran t_main.o -L/path/to/lib -lt
- 运行阶段需让动态链接器找到 .so:
- 临时:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/lib
- 或放入系统库目录并更新缓存:sudo ldconfig
- 要点:.mod 文件必须与使用它的源码在编译期可达(用 -I 指定);.so 文件在运行期可达(用 LD_LIBRARY_PATH 或 ldconfig)。
- 生成模块与共享库(.mod 与 .so):
四 多版本与依赖冲突处理
- 多版本并行:同一主版本系列通常可并存(如 libgfortran5 与 libgfortran4 属于不同系列),但同一系列不要混装多个小版本。
- 遇到依赖无法满足(如 APT 报 “Depends: libgfortranX (>
= N) but it is not going to be installed”)时:
- 先确保软件源完整(含 security 与 updates 源),执行 sudo apt update。
- 使用 aptitude 进行依赖解析:sudo aptitude install < 目标包> ;aptitude 常能给出更可行的解决方案(如调整候选版本或依赖)。
- 必要时检查是否因 pinned 版本或第三方源导致冲突,必要时暂时禁用后重试。
五 实用命令清单
- 安装与维护:sudo apt install < 库名> ;sudo apt remove < 库名> ;sudo apt purge < 库名> ;sudo apt autoremove;sudo apt update & & sudo apt upgrade
- 查询与定位:apt search < 关键词> ;apt show < 包名> ;apt-file list < 包名>
- 文件查找:find /usr -name “lib*.so*”;find /usr -name “*.mod”
- 构建与链接:gfortran -O2 main.f90 -l< 库名> ;gfortran -c file.f90 -I< mod_dir> ;gfortran obj.o -L< lib_dir> -l< 库名>
- 运行期配置:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:< lib_dir> ;sudo ldconfig
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian下Fortran库怎么管理
本文地址: https://pptw.com/jishu/762294.html
