温馨提示×

ubuntu如何连fortran库

小樊
51
2026-10-18 21:17:18
栏目: 智能运维

在 Ubuntu 上“连 Fortran 库”通常指两件事之一:

  1. 编译/链接 Fortran 写的库(.a / .so)
  2. 在 C/C++ 或其他语言中调用 Fortran 库

下面按常见场景说明。


一、安装 Fortran 编译器

Ubuntu 默认可能没有 gfortran:

sudo apt update
sudo apt install gfortran

验证:

gfortran --version

二、使用 Fortran 库(静态库 / 动态库)

1️⃣ 编译 Fortran 库

静态库示例

gfortran -c mylib.f90
ar rcs libmylib.a mylib.o

动态库示例

gfortran -fPIC -c mylib.f90
gfortran -shared -o libmylib.so mylib.o

2️⃣ 链接 Fortran 库

假设你有:

  • libmylib.a 或 libmylib.so
  • 在主程序 main.f90 中调用
gfortran main.f90 -L. -lmylib -o main

说明:

  • -L.:库路径
  • -lmylib:对应 libmylib

三、在 C/C++ 中调用 Fortran 库

Fortran 侧(mylib.f90)

subroutine add(a, b, c) bind(C)
  use iso_c_binding
  real(c_double), intent(in) :: a, b
  real(c_double), intent(out) :: c
  c = a + b
end subroutine

编译:

gfortran -fPIC -c mylib.f90
gfortran -shared -o libmylib.so mylib.o

C 侧

extern void add_(double *a, double *b, double *c);

int main() {
    double a=1, b=2, c;
    add_(&a, &b, &c);
}

⚠️ 注意:

  • Fortran 函数名通常带下划线(add_)
  • 参数必须传指针

编译:

gcc main.c -L. -lmylib -lgfortran -o main

四、安装系统已有的 Fortran 库

例如:

sudo apt install liblapack-dev
sudo apt install libblas-dev

使用:

gfortran main.f90 -llapack -lblas -o main

五、常见问题

❌ 找不到库

export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH

❌ undefined reference

  • 检查库顺序(依赖库放后面)
  • 确认是 gfortran 编译的

如果你能具体说:

  • 是 调用现成 Fortran 库 还是 自己写
  • 用 Fortran / C / Python

我可以给你更精确的命令。

0 踩