gfortran 使循环依赖下降
gfortran make circular dependency dropped
我正在 运行在 windows 上使用 GNU Make 4.1 创建一个 makefile。我看过很多关于这个主题的 SO 链接,但它们似乎都是针对 C 或 C++ 的。我不确定是否适用相同的规则,而且由于我使用的是 windows,语法似乎也有点不同。
这是我的 make 文件:
FC = gfortran
FCFLAGS = -O0 -Og -Wall -pedantic -fbacktrace -fcheck=all
# FCFLAGS = -O2
MODDIR = "bin"
FCFLAGS += -J$(MODDIR) -fopenmp -fimplicit-none -Wuninitialized
SRCS_C =\
gridFun.f90 \
test.f90
OBJS_C = $(SRCS_C:.c=.o)
TARGET = test
all: $(TARGET)
$(TARGET): $(OBJS_C)
$(FC) -o $@ $(FCFLAGS) $(OBJS_C)
$(OBJS_C): $(SRCS_C)
$(FC) $(FCFLAGS) -c $(SRCS_C)
cleanMod:
del *.mod
cleanObj:
del *.o
我 运行 我的 make 文件
gmake
而且我注意到
mingw32-make
似乎产生了相同的结果。我得到的错误是:
gmake: Circular gridFun.f90 <- gridFun.f90 dependency dropped.
gmake: Circular test.f90 <- gridFun.f90 dependency dropped.
gmake: Circular test.f90 <- test.f90 dependency dropped.
gfortran -O0 -Og -Wall -pedantic -fbacktrace -fcheck=all -J"bin" -fopenmp -fimpl
icit-none -Wuninitialized -c gridFun.f90 test.f90
gfortran -o test -O0 -Og -Wall -pedantic -fbacktrace -fcheck=all -J"bin" -fopenm
p -fimplicit-none -Wuninitialized gridFun.f90 test.f90
任何有关如何解决此问题的帮助,以及可能的解释将不胜感激!
您没有 c
来源,因此变量的 _C
后缀不准确(无害但令人困惑)。
真正的问题在于这个 OBJS_C = $(SRCS_C:.c=.o)
substitution ref。
希望将 .c
个文件更改为 .o
个文件,但您没有任何 .c
个文件。
将其更改为 OBJS_C = $(SRCS_C:.f90=.o)
,它应该适合您。
我正在 运行在 windows 上使用 GNU Make 4.1 创建一个 makefile。我看过很多关于这个主题的 SO 链接,但它们似乎都是针对 C 或 C++ 的。我不确定是否适用相同的规则,而且由于我使用的是 windows,语法似乎也有点不同。
这是我的 make 文件:
FC = gfortran
FCFLAGS = -O0 -Og -Wall -pedantic -fbacktrace -fcheck=all
# FCFLAGS = -O2
MODDIR = "bin"
FCFLAGS += -J$(MODDIR) -fopenmp -fimplicit-none -Wuninitialized
SRCS_C =\
gridFun.f90 \
test.f90
OBJS_C = $(SRCS_C:.c=.o)
TARGET = test
all: $(TARGET)
$(TARGET): $(OBJS_C)
$(FC) -o $@ $(FCFLAGS) $(OBJS_C)
$(OBJS_C): $(SRCS_C)
$(FC) $(FCFLAGS) -c $(SRCS_C)
cleanMod:
del *.mod
cleanObj:
del *.o
我 运行 我的 make 文件
gmake
而且我注意到
mingw32-make
似乎产生了相同的结果。我得到的错误是:
gmake: Circular gridFun.f90 <- gridFun.f90 dependency dropped.
gmake: Circular test.f90 <- gridFun.f90 dependency dropped.
gmake: Circular test.f90 <- test.f90 dependency dropped.
gfortran -O0 -Og -Wall -pedantic -fbacktrace -fcheck=all -J"bin" -fopenmp -fimpl
icit-none -Wuninitialized -c gridFun.f90 test.f90
gfortran -o test -O0 -Og -Wall -pedantic -fbacktrace -fcheck=all -J"bin" -fopenm
p -fimplicit-none -Wuninitialized gridFun.f90 test.f90
任何有关如何解决此问题的帮助,以及可能的解释将不胜感激!
您没有 c
来源,因此变量的 _C
后缀不准确(无害但令人困惑)。
真正的问题在于这个 OBJS_C = $(SRCS_C:.c=.o)
substitution ref。
希望将 .c
个文件更改为 .o
个文件,但您没有任何 .c
个文件。
将其更改为 OBJS_C = $(SRCS_C:.f90=.o)
,它应该适合您。