tim*_*tim 2 binary environment fortran hardcode
嘿那里,如果env var"XYZ"设置为编译时,比我想要的部分:
write (STDOUT,*) "Compiled with XYZ"
here one more function call bla()
Run Code Online (Sandbox Code Playgroud)
要编译成二进制文件.如果不是,不是.有办法吗?非常感谢!
编译时无法检查环境变量,但可以将选项传递给编译器 - 称为预处理.这没有大量记录,但至少与gfortran和intel ifort一起使用.在编译行上是否使用"-DMYOPTION"(或您选择的任何选项名称).然后在代码中:
#ifdef MYOPTION
Fortran source code
#else
Fortran source code
#endif
Run Code Online (Sandbox Code Playgroud)
显然,预处理器行必须从第一列开始.
如果使用文件类型"F90",将自动调用预处理器,否则您可以使用编译器选项来调用此步骤.
也许这会满足你的需求?如果没有,您可以使用命令脚本检查环境变量并根据其值使用不同的编译命令,以使预处理器方法响应环境变量.
当然,您可以使用内部get_environment_variable在运行时检查环境变量..只需使用if语句来响应值可能更容易.