gfortran是Debian系统上最主流的Fortran编译器,属于GNU Compiler Collection(GCC)的一部分,支持Fortran 95及以上标准(包括Fortran 2003、2008、2018),具备高性能、遵循标准的特点,广泛应用于科学计算与工程领域。
安装方法:通过apt包管理器一键安装,命令如下:
sudo apt update && sudo apt install gfortran
验证安装:安装完成后,终端输入gfortran --version,若输出编译器版本信息(如GNU Fortran (Debian 12.2.0-14) 12.2.0),则说明安装成功。
build-essential是Debian下的基础构建工具包,包含gcc(C编译器)、make(自动化构建工具)、libc6-dev(C标准库开发文件)等,是编译Fortran程序(尤其是依赖C接口的程序)的必备组件。
安装命令:
sudo apt install build-essential
作用:make工具可通过Makefile定义编译规则,简化多文件项目的构建流程;libc6-dev提供C标准库的头文件与静态库,支持Fortran与C的混合编程。
BLAS(Basic Linear Algebra Subprograms)与LAPACK(Linear Algebra PACKage)是Fortran科学计算的核心库,分别提供基础的线性代数运算(如向量乘法、矩阵乘法)和高级线性代数功能(如矩阵分解、特征值计算)。
安装命令:
sudo apt install libblas-dev liblapack-dev
使用场景:编写数值积分、矩阵运算、特征值求解等程序时,需通过-llapack -lblas链接这两个库。例如,调用LAPACK的dgetrf函数进行矩阵LU分解时,需在编译命令中添加上述选项。
OpenMPI是开源的MPI(Message Passing Interface)实现,支持分布式内存并行计算,适用于大规模集群环境。Fortran通过use mpi_f08模块调用MPI函数,实现进程间通信。
安装命令:
sudo apt install openmpi-bin libopenmpi-dev
使用场景:编写并行矩阵加法、粒子模拟等程序时,需链接libopenmpi-dev库。编译时添加-lopenmpi选项,运行时通过mpirun命令启动多进程(如mpirun -np 4 ./my_program)。
Makefile是传统的自动化构建工具,通过定义编译规则(如.f90文件编译为.o目标文件,再链接为可执行文件),简化多文件项目的编译流程。
示例Makefile:
FC = gfortran # 编译器
FFLAGS = -O2 # 编译选项(优化级别2)
SRCS = main.f90 utils.f90 # 源文件
OBJS = $(SRCS:.f90=.o) # 目标文件(.f90替换为.o)
TARGET = my_program # 可执行文件名
all: $(TARGET) # 默认目标
$(TARGET): $(OBJS) # 链接目标文件生成可执行文件
$(FC) $(FFLAGS) -o $@ $^
%.o: %.f90 # 编译每个源文件为目标文件
$(FC) $(FFLAGS) -c $<
clean: # 清理生成的文件
rm -f $(OBJS) $(TARGET)
使用方法:终端运行make编译项目,make clean清理生成的文件。
FPM(Fortran Package Manager)是现代Fortran项目的自动化构建工具,支持依赖管理、编译、测试、打包等功能,简化项目初始化与发布流程。
安装方法:从GitHub下载二进制文件并配置环境变量:
wget https://github.com/fortran-lang/fpm/releases/download/v0.9.0/fpm-0.9.0-linux-x86_64
mv fpm-0.9.0-linux-x86_64 /usr/local/bin/fpm
chmod +x /usr/local/bin/fpm
使用方法:
fpm new my_project(创建名为my_project的Fortran项目模板);cd my_project && fpm build(编译项目生成可执行文件);fpm run(编译并运行程序);fpm package(生成可分发的.tar.gz包)。VSCode是轻量级跨平台IDE,通过安装插件可支持Fortran语法高亮、代码提示、调试等功能。
配置步骤:
GDB是GNU调试工具,用于调试Fortran程序(需编译时添加-g选项生成调试信息)。
使用示例:
gfortran -g hello.f90 -o hello # 编译时添加-g选项
gdb ./hello # 启动GDB调试器
(gdb) break main # 在main函数处设置断点
(gdb) run # 运行程序
(gdb) next # 单步执行
(gdb) print x # 查看变量x的值
若运行Fortran程序时出现libgfortran.so.X: cannot open shared object file错误(如libgfortran.so.5缺失),需安装对应的libgfortran运行时库:
sudo apt install libgfortran5 # Debian 12及以上版本
若系统提示找不到对应版本,可通过apt search libgfortran查找适配当前系统的包名(如Debian 11可能需要libgfortran4)。
若系统无法自动找到库文件(如libblas.so、liblapack.so),需将库路径添加到LD_LIBRARY_PATH环境变量:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH # 临时生效
为永久生效,将上述命令添加到用户家目录的.bashrc文件中,然后运行source ~/.bashrc使修改立即生效。