在Ubuntu上,Fortran代码可以通过使用ISO C Binding来调用C语言函数。这允许Fortran程序调用C库中的函数,反之亦然。以下是如何在Ubuntu上设置Fortran项目以调用C语言函数的步骤:
安装必要的编译器: 确保你已经安装了gfortran和gcc。你可以使用以下命令来安装它们:
sudo apt update
sudo apt install gfortran gcc
编写C语言函数:
创建一个C语言源文件,例如example.c
,并实现你想要调用的函数。
// example.c
#include <stdio.h>
void hello_from_c() {
printf("Hello from C!\n");
}
创建Fortran接口文件:
创建一个Fortran接口文件,例如example.f90
,在这个文件中声明你想要调用的C函数。使用bind(C)
属性来确保Fortran和C之间的调用约定一致。
! example.f90
interface
subroutine hello_from_c() bind(C, name="hello_from_c")
end subroutine hello_from_c
end interface
program call_c_from_fortran
call hello_from_c()
end program call_c_from_fortran
编译C代码: 使用gcc编译C源文件为对象文件。
gcc -c example.c -o example.o
编译Fortran代码并链接C对象文件: 使用gfortran编译Fortran源文件,并将C对象文件链接到Fortran程序中。
gfortran -c example.f90 -o example.o
gfortran example.o example.o -o call_c_from_fortran
注意:在这个步骤中,我们将Fortran和C的对象文件都编译为.o
文件,然后将它们链接在一起。如果你的C函数有返回值或者使用了参数,你需要确保Fortran接口块正确地声明了这些参数和返回类型。
运行Fortran程序: 现在你可以运行编译好的Fortran程序,它将调用C语言函数。
./call_c_from_fortran
你应该会看到输出:
Hello from C!
这就是在Ubuntu上使用Fortran调用C语言函数的基本过程。如果你需要传递参数或者处理更复杂的数据类型,你可能需要使用iso_c_binding
模块中提供的额外工具和类型定义。