binary - Fortran:硬编码一些依赖于环境变量的代码

标签 binary fortran environment hardcode

你好, 如果在编译时设置了环境变量“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/

相关文章:

Spring 类环境能力

c++ - 尝试读取二进制文件会清除文件本身

fortran - 了解 Fortran 指针

fortran - 如何识别 fortran 标准 - '77, ' 90 或 '95?

floating-point - 如何将复数的虚部设置为零?

android - 试图模拟 Environment.getExternalStorageState

php - mysqli_fetch_assoc()需要参数/调用成员函数bind_param()错误。如何获取并修复实际的mysql错误?

java - 隐写术后第一个字节的位相差一位

c - 要求低且二进制大小至少为 2MB 的开源 C 程序

string - CodeJam 2014 : How to solve task "New Lottery Game"?