【问题标题】:Fortran 2008 - conditional compilation [duplicate]Fortran 2008 - 条件编译[重复]
【发布时间】: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 你说得对,当我将指令移到行首时,问题就消失了......请你写下你的评论作为答案,这样我可以接受吗?
  • 上网点!

标签: fortran c-preprocessor gfortran conditional-compilation preprocessor-directive


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-08-12
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多