Ich versuche, eine statische Bibliothek mit gemischten C-und Fortran-Code zu erstellen. Beim Erstellen der Fortran-Dateien erhalte ich diesen Fehler für jede meiner Fortran-Dateien, aber nicht für die c-Dateien.Circular Abhängigkeit gelöscht: make, fortran und c Gebäude statische Bibliothek
make: Circular file0.F90 <- file0.F90.o dependency dropped.
mpif90 -c -O2 -o "file0.F90.o" "file0.F90"
Das Makefile, das ich verwende, ist unten. Meine Regel für F90-Dateien ist die gleiche wie für C-Dateien, also bin ich mir nicht sicher, warum es dieses Verhalten haben sollte?
CC = mpicc
FC = mpif90
TARGET=libpxn
FCFLAGS = -O2 -fPIC
CFLAGS = -O2 -fPIC -lm -Wall
CPPFLAGS = $(CFLAGS)
SRCS = $(wildcard *.F90) $(wildcard *.c)
OBJS = $(patsubst %, %.o, $(SRCS))
# Rules
all: static
static: $(OBJS)
ar rcs $(TARGET).a $(OBJS)
%.c.o: %.c
$(CC) -c $(CFLAGS) -o "[email protected]" "$<"
%.F90.o: %.F90
$(FC) -c $(FCFLAGS) -o "[email protected]" "$<"
clean:
@printf "Cleaning: \n"
@find . -type f -name '*.o' -print0 | xargs -0 -I % sh -c 'printf "% "; rm -f %'
rm -f $(TARGET).so $(TARGET).a
Ich habe auch versucht mit Gnu Compiler mit dem gleichen Ergebnis. Irgendwelche Ideen, warum das passiert?
Brilliant dies löste das Problem, danke. – timdykes
Interessant, gibt es eine nicht 'schnelle und dreckige' Lösung für dieses Problem? – timdykes
@timofiend Ich dachte, du würdest nie fragen: D Ich kann jetzt nicht, aber ich werde ein Update in etwa 8 Stunden oder so veröffentlichen. Es geht hauptsächlich darum, ein paar Macken in deinem aktuellen Setup zu beheben. – user657267