针对不同操作系统的Gfortran预处理器指令

时间:2011-12-26 12:20:18

标签: preprocessor fortran

请告诉我,我该怎么办?

#if __unix__
#define path_sep='/'
#elif __windows__
#define path_sep='\'
#else
#error "path_sep not defined."
#endif

使用gfortran编译器。

1 个答案:

答案 0 :(得分:9)

这可以与条件编译结合使用,并在命令行中使用“D”选项。以下是一些示例代码:

program test_Dopt
character (len=1) :: pathsep
pathsep = "?"
#ifdef WOS
   pathsep = "\"
#endif
#ifdef UOS
   pathsep = "/"
#endif

write (*, '( "pathsep is >", A1, "<")' )  pathsep

end program test_Dopt

使用文件类型F90命名程序,以使gfortran运行预处理程序或在编译行上使用-cpp。然后通过在编译行上的D之后包含它们来将选项传递给预处理器,例如gfortran -DWOS。 (这比gfortran更通用 - 大多数Fortran编译器将处理C风格的预处理器指令。)然后,您可以识别Fortran之外的操作系统并将信息传递给Fortran程序。

您可以使用文件类型F90或-cpp编译代码。