在CentOS系统上使用Fortran编写Makefile时,需要考虑Fortran编译器的特点和Makefile的基本语法。以下是一个简单的示例,展示了如何为Fortran程序编写Makefile。
假设你有一个名为hello.f90的Fortran源文件,你希望编译它并生成一个可执行文件hello。
创建源文件:
! hello.f90 program hello print *, "Hello, World!" end program hello 编写Makefile: 创建一个名为Makefile的文件,并添加以下内容:
# 编译器 FC = gfortran # 编译选项 FFLAGS = -Wall -g # 目标文件 TARGET = hello # 源文件 SOURCES = hello.f90 # 依赖关系 DEPENDS = $(SOURCES:.f90=.d) # 默认目标 all: $(TARGET) # 链接目标文件生成可执行文件 $(TARGET): $(SOURCES) $(FC) $(FFLAGS) -o $@ $^ # 生成依赖关系文件 %.d: %.f90 $(FC) $(FFLAGS) -MMD -MP -MF $@ -c $< # 清理生成的文件 clean: rm -f $(TARGET) $(DEPENDS) 解释Makefile内容:
FC:指定Fortran编译器,这里使用gfortran。FFLAGS:编译选项,-Wall表示显示所有警告,-g表示包含调试信息。TARGET:最终生成的可执行文件名。SOURCES:源文件列表。DEPENDS:依赖关系文件列表,用于自动处理头文件依赖。all:默认目标,生成可执行文件。$(TARGET):链接目标文件生成可执行文件的规则。%.d: %.f90:生成依赖关系文件的规则。clean:清理生成的文件。使用Makefile: 在终端中导航到包含Makefile和源文件的目录,然后运行以下命令:
make 这将编译源文件并生成可执行文件hello。
清理生成的文件: 如果你想删除生成的可执行文件和依赖关系文件,可以运行:
make clean 通过这种方式,你可以轻松地管理Fortran项目的编译过程,并确保依赖关系得到正确处理。