编译时,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了。