在 CentOS 上“连接 Fortran 库”通常涉及 编译、链接 Fortran 静态库/动态库,或 在 C/C++ 中调用 Fortran 库。下面按常见场景说明。
sudo yum install gcc-gfortran
验证:
gfortran --version
gfortran -c mylib.f90
ar rcs libmylib.a mylib.o
gfortran main.f90 -L. -lmylib -o main
说明:
-L.:库路径-lmylib:链接 libmylib.agfortran -fPIC -shared mylib.f90 -o libmylib.so
gfortran main.f90 -L. -lmylib -o main
export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH
./main
或:
sudo cp libmylib.so /usr/lib64/
sudo ldconfig
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 add
编译:
gfortran -c example.f90
ar rcs libexample.a example.o
extern void add_(double*, double*, double*);
int main() {
double a=1, b=2, c;
add_(&a, &b, &c);
return 0;
}
gcc main.c -L. -lexample -lgfortran -o main
⚠️ 必须加 -lgfortran
-lgfortransudo yum install gcc-gfortran
Fortran 默认加下划线:
add → add_
推荐用:
bind(c)
/usr/lib64/lib64sudo yum install gcc-gfortran
gfortran -fPIC -shared mylib.f90 -o libmylib.so
gfortran main.f90 -L. -lmylib -o main
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
./main
如果你能说明:
.a 还是 .so我可以给你更精确的命令示例。