首页 > 解决方案 > pgf77 vs pgf90 编译软件

问题描述

我正在使用 PGI 2019 社区版在 LINUX 中编译软件(将 ASCII 转换为 BIN)。Makefile 使用我系统中的 PGI 编译器中未包含的 pgf77,因此我必须更改为 pgf90。但是,我遇到了一个错误:

pgf90 -vms -c -O -Mbyteswapio simcon.f
pgf90-Error-Unknown switch: -vms
make: *** [simcon.o] Error 1

我认为-vmspgf90 无法识别。那么我应该在这里使用什么标志呢? 像这样的 MAKEFILE:

FCFLGS = -O -Mbyteswapio
OBJCTS = \
aircon.o \
airconv.o \
avgcon.o \
avgcns.o \
bndcon.o \
checon.o \
dfbcon.o \
emicon.o \
metcon.o \
ptscon.o \
regcon.o \
simcon.o \
tercon.o \
tmpcon.o \
tmpcn3.o \
tpccon.o \
wndcon.o

airconv: $(OBJCTS)

        pgf77 -o airconv $(FCFLGS) $(OBJCTS)

.f.o:
        pgf77 -c $(FCFLGS) $<

simcon.o: simcon.f
        pgf77 -vms -c $(FCFLGS) simcon.f

非常感谢。

哈芝

标签: pgi

解决方案


pgf77 正在被 PGI 2019 编译器弃用。它仍然存在,但仅包含在较旧的非 LLVM 版本的编译器下(即“$PGI/linux86-64-nollvm/19.xx/bin”目录)。虽然最好转移到更新的 pgfortran 驱动程序(pgf90 也可以)。

“-vms”标志启用已被 Fortran 标准例程或其他扩展取代的非常旧的 VAX/VMS 扩展。正如您所注意到的,代码在没有标志的情况下编译,因此代码实际上并不使用这些扩展,或者它可以使用 3F 版本的扩展。


推荐阅读