Fortran 2008-条件编译
我需要在Fortran2008中使用条件编译。到目前为止,我已经找到了,但不知何故它对我不起作用,尽管我用Fortran 2008-条件编译,fortran,c-preprocessor,gfortran,conditional-compilation,preprocessor-directive,Fortran,C Preprocessor,Gfortran,Conditional Compilation,Preprocessor Directive,我需要在Fortran2008中使用条件编译。到目前为止,我已经找到了,但不知何故它对我不起作用,尽管我用-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.f
-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列中显示#
。我觉得可以。你能试着创建一个最小的例子吗?或者发布您的代码?请注意,#
必须在第1列。@Ross您是对的,当我将指令移到行的开头时,问题消失了。。。请你写下你的评论作为回答,这样我就可以接受了吗?互联网点!