簡體   English   中英

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) 替代ref

期望將.c文件更改為.o文件,但是您沒有任何.c文件。

將其更改為OBJS_C = $(SRCS_C:.f90=.o) ,它應該可以為您工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM