首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux gfortran

在 Linux 系统中安装和使用 gfortran(GNU Fortran 编译器)非常简单,以下是详细指南:


​1. 安装 gfortran​

​Ubuntu/Debian 系​

代码语言:javascript
复制
sudo apt update
sudo apt install gfortran -y

​CentOS/RHEL/Fedora 系​

代码语言:javascript
复制
# CentOS/RHEL 7/8
sudo yum install gcc-gfortran -y

# Fedora
sudo dnf install gcc-gfortran -y

​Arch Linux​

代码语言:javascript
复制
sudo pacman -S gcc-fortran

​验证安装​

代码语言:javascript
复制
gfortran --version

输出示例:

代码语言:javascript
复制
GNU Fortran (Ubuntu 9.4.0-1ubuntu1~20.04) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

​2. 基本用法​

​编译 Fortran 程序​

假设有一个 Fortran 源文件 hello.f90

代码语言:javascript
复制
program hello
    print *, "Hello, Fortran!"
end program hello

​编译并运行​

代码语言:javascript
复制
gfortran hello.f90 -o hello  # 编译生成可执行文件 hello
./hello                     # 运行程序

输出:

代码语言:javascript
复制
Hello, Fortran!

​3. 常用编译选项​

选项

说明

-o output

指定输出文件名

-Wall

启用所有警告

-O2

优化级别 2(默认)

-O3

更高级别的优化

-g

生成调试信息(用于 gdb)

-fcheck=all

启用所有运行时检查

-ffree-form

使用自由格式(默认)

-ffixed-form

使用固定格式(旧版 Fortran)

​示例:带调试和优化的编译​

代码语言:javascript
复制
gfortran -Wall -O2 -g hello.f90 -o hello_optimized

​4. 链接外部库​

如果程序依赖外部库(如 BLAS、LAPACK),需指定库路径和链接选项:

代码语言:javascript
复制
gfortran my_program.f90 -o my_program -llapack -lblas -L/usr/local/lib
  • -llapack-lblas:链接 LAPACK 和 BLAS 库。
  • -L/path/to/libs:指定库文件所在目录。

​5. 混合编程(Fortran + C/C++)​

​示例:调用 C 函数​

​C 文件 my_c_func.c

代码语言:javascript
复制
#include <stdio.h>
void say_hello() {
    printf("Hello from C!\n");
}

​Fortran 文件 main.f90

代码语言:javascript
复制
program main
    implicit none
    interface
        subroutine say_hello() bind(C, name="say_hello")
        end subroutine
    end interface
    call say_hello()
end program main

​编译命令​

代码语言:javascript
复制
gcc -c my_c_func.c -o my_c_func.o       # 编译 C 文件
gfortran main.f90 my_c_func.o -o mixed   # 编译 Fortran 并链接 C 对象文件
./mixed                                # 运行

输出:

代码语言:javascript
复制
Hello from C!

​6. 调试 Fortran 程序​

使用 gdb 调试:

代码语言:javascript
复制
gfortran -g hello.f90 -o hello_debug   # 编译时加入调试信息
gdb ./hello_debug                      # 启动 gdb

gdb 中常用命令:

  • run:运行程序
  • break main:在 main 函数设置断点
  • next:单步执行
  • print variable:打印变量值

​7. 安装多版本 gfortran​

如果需要同时使用多个版本的 gfortran(如 9 和 10):

代码语言:javascript
复制
# Ubuntu/Debian
sudo apt install gfortran-9 gfortran-10

# 切换版本(临时)
sudo update-alternatives --config gfortran

按提示选择版本编号。


​8. 常见问题解决​

​问题 1:gfortran: command not found

  • ​原因​​:未安装或未加入 PATH
  • ​解决​​:# 检查安装路径 which gfortran || echo "Not installed" # 如果已安装但未在 PATH 中,手动添加 export PATH=/usr/local/bin:$PATH # 根据实际路径调整

​问题 2:Fortran 代码编译错误​

  • ​常见错误​​:
    • 变量未声明(启用 -Wall 检查)。
    • 数组越界(使用 -fcheck=all 检测)。
  • ​解决​​:根据错误提示修改代码。

​问题 3:链接外部库失败​

  • ​原因​​:库路径未正确指定。
  • ​解决​​:

# 查找库位置

find /usr -name "liblapack*"

# 显式指定路径

gfortran program.f90 -o program -L/usr/local/lib -llapack -lblas

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的文章

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券