在Fortran中确定Makefile中的变量

问题描述 投票:0回答:1

我想将数据与!DIR$ ATTRIBUTES ALIGN:NBYTE::X对齐,其中NBYTE是在编译时定义的。我目前处于每个源文件的顶部

 #ifndef NBYTE
  #define NBYTE 64
 #endif

但是,如果我在任何地方都使用NBYTE变量,我就不能定义它。所以我的两个问题是:

  1. 是否可以只定义宏一次并在任何地方使用它而不在每个源文件中包含文件或宏?
  2. 我可以在Makefile中定义变量并在我的Fortran代码中使用它吗?
macros fortran c-preprocessor
1个回答
2
投票

大多数编译器允许您使用C类型预处理器预处理源。同时,它们允许您通过编译器的命令行传递预处理器宏。在gfortran中,您可以使用以下语法:

-Dname=definition:定义的内容被标记化并处理,好像它们出现在#define指令的翻译阶段三期间。特别是,定义将被嵌入的换行符截断。

© www.soinside.com 2019 - 2024. All rights reserved.