2017-11-21 6 views
-1

에 대해 수행되지하고 시도하는 동안 오류주고 make -f Makefile.linux로 컴파일 : 나는 주위를 검토 ​​한 결과 발견하지 않았습니다메이크 compling은 - 만들기 : 아무것도 '모든'나는 메이크가

make: Nothing to be done for 'all' 

을 이것에 대한 해결책. 어떤 사람들은 전에도 비슷한 문제가 있었지만 그들의 해결책은 나를 위해 효과가없는 것처럼 보입니다. 여기 내 코드 :

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

에 의해 귀하의 질문에서 당신은 전에 여부 명령을 실행 한 경우는 명확하지 않다. 당신은 의존성에 관해서 아무 것도 변하지 않았기 때문에 아무것도 다시 만들지 않아야합니다. 그래서 make는 당신에게 이것을 알려줍니다. – albert

+0

'make '가 어떻게 작동하는지에 대한 기초를 세우는 것이 좋습니다. – Ross

+0

왜 컴파일해야한다고 생각하니? 소스 파일을 변경 했습니까? –

답변

-2

해결되었습니다.

을 입력하여 고정 할 수 있습니다

make clean -f Makefile.linux

는 다음

make -f Makefile.linux

+1

이렇게하면 (생성 된) 모든 파일 만 제거되고 다음 make 호출시 종속성이 만족되지 않으므로 make는 일부 빌드 명령을 시작해야합니다. – albert

+0

글쎄, 그것은 코드를 다시 컴파일하고 현재이 작동합니다. 더 나은 해결책이 있습니까? – TZJ21

+0

질문에서 언급을 참조하십시오. – albert