makefile問題

編譯時,makefile如下:
CFLAGS= -g
INCS=
# use the following line to "Purify" the code
#CC=purify gcc
CC=gcc
SRCS=baum.c viterbi.c forward.c backward.c hmmutils.c sequence.c /
 genseq.c nrutil.c testvit.c esthmm.c hmmrand.c testfor.c

all : genseq testvit testfor esthmm
 
genseq: genseq.o sequence.o nrutil.o hmmutils.o  hmmrand.o
  $(CC) -o genseq genseq.o sequence.o nrutil.o /
 hmmrand.o hmmutils.o  -lm
testvit: testvit.o viterbi.o nrutil.o hmmutils.o sequence.o
  $(CC) -o testvit testvit.o viterbi.o nrutil.o sequence.o /
  hmmutils.o  hmmrand.o -lm
testfor: testfor.o forward.o nrutil.o hmmutils.o sequence.o hmmrand.o
  $(CC) -o testfor testfor.o forward.o nrutil.o sequence.o /
  hmmutils.o  hmmrand.o -lm
esthmm: esthmm.o baum.o nrutil.o hmmutils.o sequence.o /
  forward.o backward.o hmmrand.o
  $(CC) -o esthmm esthmm.o baum.o nrutil.o sequence.o hmmutils.o /
  forward.o backward.o hmmrand.o -lm
clean:
 rm *.o a.out

cygwin下編譯,出現錯誤:
make: 'all' is up to date

聯想到all下應該都是些.exe文件,作下修改,其餘不變。修改如下:
all : genseq.exe testvit.exe testfor.exe esthmm.exe
 
genseq.exe: genseq.o sequence.o nrutil.o hmmutils.o  hmmrand.o
  $(CC) -o genseq genseq.o sequence.o nrutil.o /
 hmmrand.o hmmutils.o  -lm
testvit.exe: testvit.o viterbi.o nrutil.o hmmutils.o sequence.o
  $(CC) -o testvit testvit.o viterbi.o nrutil.o sequence.o /
  hmmutils.o  hmmrand.o -lm
testfor.exe: testfor.o forward.o nrutil.o hmmutils.o sequence.o hmmrand.o
  $(CC) -o testfor testfor.o forward.o nrutil.o sequence.o /
  hmmutils.o  hmmrand.o -lm
esthmm.exe: esthmm.o baum.o nrutil.o hmmutils.o sequence.o /
  forward.o backward.o hmmrand.o
  $(CC) -o esthmm esthmm.o baum.o nrutil.o sequence.o hmmutils.o /
  forward.o backward.o hmmrand.o -lm

編譯完成完成,makefile的東西還有待學習。後面再

'all' is up to date 提示沒有更新,把原來的.o,.exe文件刪除,重新編譯就OK了。

發佈了39 篇原創文章 · 獲贊 11 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章