在 Ubuntu 上“连 Fortran 库”通常指两件事之一:
下面按常见场景说明。
Ubuntu 默认可能没有 gfortran:
sudo apt update
sudo apt install gfortran
验证:
gfortran --version
静态库示例
gfortran -c mylib.f90
ar rcs libmylib.a mylib.o
动态库示例
gfortran -fPIC -c mylib.f90
gfortran -shared -o libmylib.so mylib.o
假设你有:
libmylib.a 或 libmylib.somain.f90 中调用gfortran main.f90 -L. -lmylib -o main
说明:
-L.:库路径-lmylib:对应 libmylibsubroutine 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
extern void add_(double *a, double *b, double *c);
int main() {
double a=1, b=2, c;
add_(&a, &b, &c);
}
⚠️ 注意:
add_)编译:
gcc main.c -L. -lmylib -lgfortran -o main
例如:
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
gfortran 编译的如果你能具体说:
我可以给你更精确的命令。