【问题标题】:Why does f77 -f fail and what should it do?为什么 f77 -f 失败,应该怎么办?
【发布时间】:2021-12-29 06:42:08
【问题描述】:

我正在尝试在 ubuntu 16.04 中运行我的项目团队的一些旧 Fortran 代码。我没有对现有代码进行任何修改。 我所做的就是安装 gfortran,打开一个终端,然后使用“cd”命令转到文件位置。这里我有很多文件,但只考虑这三个,一个脚本文件compile.sh,以及两个makefile counter.makeremail.make
compile.sh

make -f counter.make
make -f remail.make

counter.make

SOURCE_APPLI=../SOURCES_COUNTERFLOW/
SOURCES_f77 = $(SOURCE_APPLI)table.f
TARGET = unst.e
OBJECTS =  $(SOURCES_f77:.f=.o)
COMPILE = f77 -f
.f90.o :
    $(COMPILE1) -o $*.o -c $*.f90
.f.o :
    $(COMPILE) -o $*.o -c $*.f
$(TARGET) : $(OBJECTS)
    $(COMPILE)  $(OBJECTS) -o $@
del :
    $(DELETE) $(OBJECTS)

remail.make

SOURCE_APPLI= ../SOURCES_COUNTERFLOW/
$(SOURCE_APPLI)grcom.f
TARGET = remail.e
OBJECTS =  $(SOURCES_f77:.f=.o)
COMPILE = f90
.f90.o :
    $(COMPILE) -o $*.o -c $*.f90
.f.o :  
    $(COMPILE) -o $*.o -c $*.f
$(TARGET) : $(OBJECTS)
    $(COMPILE)  $(OBJECTS) -o $@
del :
    $(DELETE) $(OBJECTS)

当我运行compile.sh 时,出现如下所示的错误

f77: error: unrecognized command line option ‘-f’
counter.make:29: recipe for target 'unst.e' failed
make: *** [unst.e] Error 1
make: 'remail.e' is up to date.

所以我的问题是在f77 命令行中使用和不使用-f 选项有什么区别?

【问题讨论】:

  • f77: error: unrecognized command line option ‘-f’ 来自f77,而不是来自make
  • 令人困惑的是,有两个 -f 选项,make -ff77 -f。后者几乎肯定是错误的,因为在 ubuntu f77 映射到没有 -f 选项的 gfortran 上。关于前者的问题可以通过阅读man make来回答
  • @VladimirF 感谢您的回复。我的系统中有 gfortran(GNU Fortran 95 编译器)和 gfortran-5(GNU Fortran 编译器)。 f77 有没有特定的编译器?
  • 输入type f77,它可能指向gfortran,IIRC他们在Ubuntu上这样做。
  • @VladimirF 我在终端窗口中输入了type f77,得到的输出为f77 is /usr/bin/f77。这是正确的吗?

标签: makefile fortran


【解决方案1】:

https://www.unix.com/man-page/v7/1/f77/f77 手册页说

-f 使用浮点解释器 (对于缺少 11/70 样式浮点的 PDP11)。

如果您不在 PDP-11 上,那么这个选项似乎一开始可能根本没有用。

可能仍要查看 本地 文档,理想情况下适用于曾经创建过这组 Makefiles 的系统。

GNU Fortran 77 似乎使用此选项来指定各种语言选项,但它本身并没有用(例如,它需要-fdollar-ok 之类的参数来启用名为“dollar ok”的东西。请参阅链接这些选项的详细列表及其含义的手册)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多