首页主机资讯Ubuntu上Fortran如何部署应用

Ubuntu上Fortran如何部署应用

时间2026-01-22 00:31:04发布访客分类主机资讯浏览645
导读:Ubuntu上部署Fortran应用的实用流程 一 环境准备与编译器安装 更新索引并安装 GNU Fortran 编译器(gfortran): 命令:sudo apt update && sudo apt install...

Ubuntu上部署Fortran应用的实用流程

一 环境准备与编译器安装

  • 更新索引并安装 GNU Fortran 编译器(gfortran):
    • 命令:sudo apt update & & sudo apt install gfortran
  • 可选:安装构建工具与常用依赖(便于后续联编库与工程化构建):
    • 命令:sudo apt install build-essential cmake
  • 验证安装:
    • 命令:gfortran --version(输出版本号即正常)

二 构建与运行最简示例

  • 源码:创建文件 hello.f90
    program hello
        print *, "Hello, Fortran on Ubuntu!"
    end program hello
    
  • 编译与运行:
    • 编译:gfortran -O2 -Wall -o hello hello.f90
    • 运行:./hello
  • 说明:
    • 源文件扩展名可为 .f90 / .f95 / .f
    • 建议开启优化与告警(如 -O2 -Wall)以提升性能与可维护性

三 依赖库与工程化部署

  • 使用系统库(以 NetCDF 为例)
    • 安装库与开发包:
      • 命令:sudo apt install libnetcdf-dev libnetcdff-dev
    • 编译链接(使用 nf-config 自动给出编译与链接参数):
      • 命令:gfortran test.f90 \nf-config --fflags --flibs` -o test`
    • 运行:./test
  • 使用构建系统(以 CMake 为例)
    • 示例 CMakeLists.txt(单源文件,链接 NetCDF-Fortran)
      cmake_minimum_required(VERSION 3.16)
      project(hello Fortran)
      find_package(NetCDF REQUIRED Fortran)
      add_executable(hello hello.f90)
      target_link_libraries(hello ${
      NETCDF_LIBRARIES}
      )
      target_include_directories(hello PRIVATE ${
      NETCDF_INCLUDE_DIRS}
          )
      
    • 构建与安装:
      • 命令:mkdir -p build & & cd build & & cmake -DCMAKE_INSTALL_PREFIX=/opt/helloapp .. & & make -j$(nproc) & & sudo make install
  • 使用包管理器(可选)
    • 对于更复杂的依赖管理与可重复构建,可使用 Fortran Package Manager(fpm) 进行构建与打包分发

四 多文件工程与发布打包

  • 多源文件编译(示例:mod.f90 提供模块,main.f90 使用模块)
    • 命令:gfortran -c mod.f90 -o mod.o & & gfortran -c main.f90 -o main.o & & gfortran -o app main.o mod.o
  • 发布包结构建议
    • 目录:app/(可执行文件)、lib/(第三方动态库)、share/(文档/示例)、bin/(启动脚本)、etc/(配置)
    • 启动脚本示例(bin/run.sh)
      #!/usr/bin/env bash
      HERE=$(cd "$(dirname "$0")" &
          &
           pwd)
      export LD_LIBRARY_PATH="$HERE/../lib:$LD_LIBRARY_PATH"
      exec "$HERE/../app/hello" "$@"
      
  • 系统级安装与卸载
    • 安装:sudo make install(配合 CMake 的 install 目标或自定义 Makefile)
    • 卸载:提供 uninstall 目标,或记录安装文件清单后批量删除
  • 交付物清单
    • 可执行文件、依赖库、启动脚本、配置与示例、README/许可证、变更记录(Changelog)

五 常见问题与处理

  • 找不到库或头文件
    • 使用包管理器安装对应的 -dev 包;或编译时显式指定 -I< 头文件路径> -L< 库路径> -l< 库名> ;链接 NetCDF-Fortran 时优先用 nf-config --fflags --flibs 获取参数
  • 老代码编译告警或错误
    • 新版本 gfortran 对接口检查更严格,若出现“argument mismatch”等,可在受控范围内添加编译选项(如 -fallow-argument-mismatch)以完成迁移,同时逐步修正接口
  • 运行报找不到共享库
    • 设置环境变量:export LD_LIBRARY_PATH=/opt/helloapp/lib:$LD_LIBRARY_PATH,或在 /etc/ld.so.conf.d/ 下添加库路径后执行 sudo ldconfig
  • 多文件工程链接顺序
    • 规则一般为:目标文件在前,所依赖的库在后;若有循环依赖,重复库名或调整顺序以通过链接器

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu上Fortran如何部署应用
本文地址: https://pptw.com/jishu/789301.html
Linux中ThinkPHP安全设置怎么做 Debian Node.js日志中如何监控外部依赖服务

游客 回复需填写必要信息