1. 安装Fortran编译器与基础工具
在Debian系统下,gfortran(GNU Fortran编译器)是官方推荐的核心工具,需通过APT包管理器安装。安装时会自动解决依赖关系(如GCC基础工具链),确保编译环境完整:
sudo apt update # 更新软件包列表
sudo apt install gfortran build-essential # 安装gfortran及编译基础工具(如make)
build-essential包含make、gcc等工具,是Fortran项目编译的必备组件。
2. 构建工具选择:FPM(Fortran Package Manager)
FPM是Fortran生态中专为简化项目构建、测试、分发的工具,尤其适合中大型项目。其优势在于自动化处理依赖、生成标准构建流程,无需手动编写Makefile。
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_fortran_project # 创建名为my_fortran_project的新项目
cd my_fortran_project
fpm run # 编译并运行项目(默认执行src/main.f90)
FPM会自动生成src/(源代码目录)、test/(测试目录)、fpm.toml(项目配置文件)等标准结构。3. 项目依赖管理
netcdf-fortran、openblas),通过APT安装对应开发包(命名通常为lib<package>-dev),APT会自动处理库文件与头文件:sudo apt install libnetcdf-dev libopenblas-dev # 示例:安装NetCDF和OpenBLAS的Fortran开发库
fpm.toml文件声明依赖,FPM会自动下载并编译所需库。例如,在fpm.toml中添加:[dependencies]
netcdf-fortran = "4.6" # 指定netcdf-fortran版本
运行fpm build时,FPM会自动解析依赖并编译。4. 库文件管理
/usr/lib(系统自带)、/usr/local/lib(用户手动安装)。需确保这些路径在编译时能被找到:sudo cp libmylib.so /usr/local/lib # 将自定义库复制到系统库目录
~/mylibs),需通过LD_LIBRARY_PATH指定运行时库搜索路径,通过-L选项指定编译时库搜索路径:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/mylibs # 临时生效
gfortran my_program.f90 -L~/mylibs -lmylib -o my_program # 编译时链接自定义库
可将export命令添加到~/.bashrc中,实现永久生效。5. 编译与运行流程
gfortran直接编译。例如,编译单个源文件:gfortran hello.f90 -o hello # 生成可执行文件hello
编译多个源文件或链接库:gfortran main.f90 utils.f90 -L/usr/local/lib -lmyutils -o my_program # 链接utils.f90编译的库
fpm build # 编译项目,生成可执行文件(位于build/目录)
fpm run # 运行可执行文件
FPM支持自定义编译选项(如优化级别、调试信息),可通过fpm.toml配置。6. 测试与分发
src/目录下创建test_*.f90测试文件,运行fpm test即可执行所有测试用例,验证项目功能。fpm package # 生成项目包(位于项目根目录)
生成的包可通过fpm install命令快速安装到系统中,或分享给其他用户。