【问题标题】:C_INCLUDE_PATH equivalent for Fortran?Fortran 的 C_INCLUDE_PATH 等效项?
【发布时间】:2020-12-02 19:31:04
【问题描述】:

是否有与标准环境变量 C_INCLUDE_PATHCPLUS_INCLUDE_PATH 等效的 Fortran?

【问题讨论】:

  • 我们当然不认为 Fortran 会死。谁告诉你的?无论如何,这是特定于编译器的。你的编译器是什么?
  • 我经常使用几种不同的 Fortran 编译器。 Gfortran 一般适用于大多数东西,PGI / NVIDIA HPC SDK 当我需要 OpenACC 支持时,Intel Fortran (ifort) 当我在基于 Intel 的集群上时,LLVM + Flang 当我在基于 AMD 的集群上时他们'当我在基于 POWER 的集群上时,可以在那里使用 IBM XL Fortran。
  • 我关于 Fortran 已死的声明只是为了阻止逆势者(例如,C '大师赛'的人,如果他们存在的话)

标签: fortran gfortran


【解决方案1】:

gfortran 不使用环境变量来修改模块的搜索路径。

就像C_INCLUDE_PATHCPLUS_INCLUDE_PATH 影响预处理器的 搜索路径一样,CPATH(和C_INCLUDE_PATH)可以在使用gfortran 调用预处理器时使用。但是,use 语句和 include 行不属于预处理阶段:这些变量将允许使用 #include 找到文件,但不能以其他方式找到。

更广泛的 Fortran 语言没有指定此类内容。除了标记的 gfortran 之外的其他编译器可能会以所需的方式使用某个名称的环境变量。

【讨论】:

  • 我明白了。你知道C_INCLUDE_PATHCPATH_INCLUDE_PATH 是否真的是一个POSIX 标准,还是仅仅在GCC 中定义?
  • 或者,除了通常与 GCC 捆绑在一起的 GNU 预处理器(因此几乎存在于所有系统中)之外,是否还有其他预处理器?
  • 我相信起源是 GCC 而不是 POSIX,但其他编译器广泛支持这些。我不知道有一个编译器套件支持这些,但也为其 Fortran 编译器添加了一个等价物。 (我倾向于通过构建系统添加-I 或等效保真度,而不是依赖环境变量,所以可能只是我从未看过而不是确定它们不存在。)
  • 模块搜索根本不是预处理步骤,无论使用哪个预处理器。如果你想添加到模块搜索路径而不是预处理器包含头搜索路径,那么你就不走运了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
  • 2018-09-17
  • 2022-07-29
  • 2013-08-16
  • 2011-11-23
  • 1970-01-01
相关资源
最近更新 更多