在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。你可以根据需要修改编译选项、源文件和目标文件等。