你好, 如果在编译时设置了环境变量“XYZ”,那么我想要的部分:
write (STDOUT,*) "Compiled with XYZ"
here one more function call bla()
编译成二进制文件。如果没有,那也好。 有什么办法吗? 非常感谢!
最佳答案
您不能在编译时检查环境变量,但您可以将选项传递给编译器——称为预处理。这没有大量记录,但至少适用于 gfortran 和 intel ifort。在编译行上使用或不使用“-DMYOPTION”(或您选择的任何选项名称)。然后在代码中:
#ifdef MYOPTION
Fortran source code
#else
Fortran source code
#endif
显然,预处理器行必须从第一列开始。
如果您使用文件类型“F90”,预处理器将被自动调用,否则您可以使用编译器选项来调用此步骤。
也许这会满足您的需求?如果没有,您可以创建一个命令脚本来检查环境变量并根据其值使用不同的编译命令,以使预处理器方法响应环境变量。
当然,您可以在运行时使用内在的 get_environment_variable 检查环境变量。简单地使用 if 语句来响应值可能会更容易。
关于binary - Fortran:硬编码一些依赖于环境变量的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5652189/