2017-11-21 3 views
-1

ich eine Make-Datei haben und bei dem Versuch, es zu kompilieren mit make -f Makefile.linux es den Fehler ist zu geben:Make-Datei compling - machen: Nichts für ‚alle‘ zu tun

make: Nothing to be done for 'all' 

ich mich umsah habe und nicht gefunden haben, eine Lösung dafür. Einige andere hatten vorher ein ähnliches Problem, aber ihre Lösungen scheinen nicht für mich zu funktionieren. Hier ist mein Code:

FCOMPL=/usr/bin/g77 -m32 
FCOM90=gfortran -m32 
FFLAGC=-u -Wall -ff2c -fPIC -O 

BINDIR=/ami/bin/linux-x86 
OLDBIN=/ami/bin/linux-x86/old 
LIBDIR=/ami/lib/linux-x86 
X11LIB=/usr/X11R6/lib 
BLDDIR=./ 

LIBS=-L/mrao/lib -lutil -lio -lch -lpgplot -L$(X11LIB) -lX11 

SOURCE_FILES=./make_sources 

include $(SOURCE_FILES) 

.SUFFIXES : .f90 

.f.o: 
    $(FCOMPL) -c $(FFLAGC) $< 

.f90.o: 
    $(FCOM90) -c $(FFLAGC) $< 

#all:profile 

libprofile.a : $(OBJECTS) 
    ar ru libprofile.a $(OBJECTS) 

profile: profile.f90 libprofile.a 
    $(FCOM90) $(FFLAGC) -o profile.linux profile.f90 \ 
     -L$(BLDDIR) -lprofile \ 
     -L$(LIBDIR) -lsla -lnag77 -lcfitsio $(LIBS) 
    ln -s profile.linux profile 
    chmod g+w *.o *.mod *.a profile.linux 

install: profile 
    mv $(BINDIR)/profile $(OLDBIN)/profile 
    cp -p profile.linux $(BINDIR)/profile 
    chmod g+w $(BINDIR)/profile 

previous: 
    mv $(OLDBIN)/profile $(BINDIR)/profile 

clean: 
    rm profile.linux profile *.o *.mod *.a 
+1

Aus Ihrer Frage ist es unklar, ob der Befehl vor oder nicht lief. In dir wurde nichts in Bezug auf die Abhängigkeiten geändert und somit muss nichts neu erstellt werden, also sag es dir einfach. – albert

+0

Ich empfehle Ihnen, die Grundlagen zu lernen, wie 'make' funktioniert. – Ross

+0

Warum glaubst du, dass es kompilieren sollte? Hast du eine Quelldatei geändert? –

Antwort

-2

Gelöst.

Dies kann durch die Eingabe festgelegt werden:

make clean -f Makefile.linux

von

gefolgt

make -f Makefile.linux

+1

Dies würde nur alle (generierten) Dateien entfernen und beim nächsten make-Aufruf wären die Abhängigkeiten nicht erfüllt, so dass make einige Build-Befehle starten muss. – albert

+0

Nun, es ist der Code neu kompiliert und das funktioniert derzeit. Hast du eine bessere Lösung? – TZJ21

+0

Siehe Bemerkung bei der Frage. – albert