我正在尝试编译由其他人开发的一些完整的Fortran代码。 makefile引用CC,F77和F90。我们的服务器上没有F90,但如果事实证明它确实需要,我可能会要求它。
无论如何,我认为我已经适当地设置了环境变量(我所做的只是取消注释正确的行),所以我把文件命名为makefile,输入make并得到以下错误。
make[1]: Entering directory `/imageseer/Scripts/PGE03_V5.2.6/PGE03/MOD_PR35'
f77 -c -n32 -fullwarn -u -bytereclen -extend_source -woff 2271,2272,2274 -O2 -c -u -bytereclen -col120 -woff 2271,2272,2274 -I -I -I -I -I/shared_src/atmos_src/src_UW -I/shared_src/atmos_src/src_L2 Antarctic_day.f
f77: 2271,2272,2274: No such file or directory
f77: 2271,2272,2274: No such file or directory
f77: unrecognized option `-n32'
f77: unrecognized option `-woff'
f77: unrecognized option `-col120'
f77: unrecognized option `-woff'
f771: error: unrecognized command line option "-fullwarn"
make[1]: *** [Antarctic_day.o] Error 1
make[1]: Leaving directory `/imageseer/Scripts/PGE03_V5.2.6/PGE03/MOD_PR35'
make: *** [target] Error 2
我不确定你们是否能够提供帮助,但不幸的是,由于许可问题,我认为在这里复制代码并不合适。无论如何,我不知道如何判断未识别的选项是否对开发团队的系统是唯一的,或者是否是由于我的系统的一些缺点(即,我应该让我的高级系统管理员安装f90),或者其他一些问题。我还应该承认,我对Fortran几乎一无所知,并且只使用了make与cc,所以第三种可能性是我应该把责任推给别人,但我不认为我团队中的任何人都知道Fortran 。一如既往,感谢您的帮助!
答案 0 :(得分:3)
在我看来,这些选项适用于旧的SGI编译器。如果是这种情况,则可以使用newly-open-sourced Pathscale compilers“开箱即用”。但我认为大多数选项在其他编译器中都有类似的东西。
有些选项似乎列在here中。 -fullwarn打开所有警告;在gfortran那将是-Wall。 -woff关闭了一些警告 - 在这里,警告2271,2272和2274.不知道那些是什么现在;我只是留下所有警告,看看它是什么来的。
-col120提升了f77的72列限制,允许行为120列宽。在g77 / gfortran中,它将是-ffixed-line-length-120。 -extend_source做类似的事情,可能会被忽略。
-n32生成我所采用的32位对象。 -m32也应该这样做,但是我等着找出为什么这需要32位才能做到这一点。