Fortran 2008 - 条件编译[重复]

Posted

技术标签:

【中文标题】Fortran 2008 - 条件编译[重复]【英文标题】:Fortran 2008 - conditional compilation [duplicate] 【发布时间】:2017-11-20 17:28:11 【问题描述】:

我需要在 Fortran2008 中使用条件编译。到目前为止,我已经找到了 this solution,但它对我不起作用,尽管使用 -cpp 这样的标志编译我的代码

gfortran  -Dconnection_m_EXPORTS -I/home/martin/4Neuro/build/lib  -O2 -std=f2008 -cpp -fPIC   -c /home/martin/4Neuro/src/connection_m.f90 -o CMakeFiles/connection_m.dir/connection_m.f90.o

我仍然收到此错误

/home/martin/4Neuro/src/connection_m.f90:133:13:
             #ifdef TIME_PROFILING
             1
Error: Invalid character in name at (1)
/home/martin/4Neuro/src/connection_m.f90:136:13:

             #endif
             1
Error: Invalid character in name at (1)
/home/martin/4Neuro/src/connection_m.f90:143:13:

             #ifdef TIME_PROFILING
             1
Error: Invalid character in name at (1)
/home/martin/4Neuro/src/connection_m.f90:148:13:

             #endif
             1
Error: Invalid character in name at (1)

你知道吗,我做错了什么?

我的 gfortran 版本是:GNU Fortran (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005 我的文件扩展名为.f90

【问题讨论】:

这对我来说看起来不错。你能尝试创建一个最小的例子吗?或者发布你的代码? 请注意,# 必须在第 1 列中。 @Ross 你说得对,当我将指令移到行首时,问题就消失了......请你写下你的评论作为答案,这样我可以接受吗? 上网点! 【参考方案1】:

带有# 的预处理器指令必须有# 出现在第1 列中。

【讨论】:

以上是关于Fortran 2008 - 条件编译[重复]的主要内容,如果未能解决你的问题,请参考以下文章

系统地并行化 fortran 2008 `do concurrent`,可能使用 openmp

.NET 4 的条件编译 [重复]

MSBuild 条件编译

MPI Fortran编译器优化错误[重复]

编译器优化可以消除在 for 循环的条件中重复调用的函数吗?

尝试在 C# 中简化条件编译的步骤