温馨提示×

CentOS上Fortran如何编写Makefile

小樊
92
2025-04-23 00:19:06
栏目: 智能运维

在CentOS上编写Fortran程序的Makefile时,需要考虑编译器、编译选项、源文件和目标文件等。以下是一个简单的示例,展示了如何为Fortran程序编写Makefile。

首先,假设我们有一个名为hello.f90的Fortran源文件,内容如下:

program hello
  implicit none
  print *, 'Hello, World!'
end program hello

接下来,创建一个名为Makefile的文件,内容如下:

# 编译器
FC = gfortran

# 编译选项
FFLAGS = -Wall -g

# 源文件
SRCS = hello.f90

# 目标文件
OBJS = $(SRCS:.f90=.o)

# 可执行文件
TARGET = hello

# 默认目标
all: $(TARGET)

# 链接目标文件生成可执行文件
$(TARGET): $(OBJS)
	$(FC) $(FFLAGS) -o $@ $^

# 编译源文件生成目标文件
%.o: %.f90
	$(FC) $(FFLAGS) -c $< -o $@

# 清理生成的文件
clean:
	rm -f $(OBJS) $(TARGET)

在这个Makefile中,我们定义了以下变量:

  • FC:Fortran编译器,这里使用gfortran
  • FFLAGS:编译选项,例如-Wall表示显示所有警告,-g表示生成调试信息。
  • SRCS:源文件列表。
  • OBJS:目标文件列表,通过将源文件列表中的.f90扩展名替换为.o得到。
  • TARGET:生成的可执行文件名。

Makefile中的规则包括:

  • all:默认目标,用于生成可执行文件。
  • $(TARGET):链接目标文件生成可执行文件的规则。
  • %.o: %.f90:编译源文件生成目标文件的规则,使用模式匹配%表示任意字符串。
  • clean:清理生成的文件(目标文件和可执行文件)。

要编译Fortran程序,请在终端中导航到包含Makefile和源文件的目录,然后运行make命令:

make

这将生成名为hello的可执行文件。要清理生成的文件,请运行:

make clean

这个简单的示例应该足以帮助你在CentOS上为Fortran程序编写Makefile。你可以根据需要修改编译选项、源文件和目标文件等。

0