我是makefile的新手。我不確定編譯後爲什麼可執行文件'main'沒有出現。代碼編譯罰款,但編譯器說:Makefile-不輸出可執行文件
-lm: linker input file unused because linking not done
-ltiff: linker input file unused because linking not done
下面是生成文件代碼:
INCLUDES = -I. -I../include -I/opt/local/include
CC = gcc
OBJS = image_io.o textfile_io.o main.o
CFLAGS = $(INCLUDES) -c -g
DESTDIR = ../bin
LDFLAGS = -L. -L../lib -L/opt/local/lib -lm
DEPS = file_io.h corr.h nmsimplex.h matrix.h /opt/local/include/tiffio.h \
/opt/local/include/tiff.h
image_io.o: image_io.c file_io.h /opt/local/include/tiffio.h \
/opt/local/include/tiff.h
$(CC) $(CFLAGS) -o [email protected] $< $(LDFLAGS) -ltiff
textfile_io.o: textfile_io.c file_io.h
$(CC) $(CFLAGS) -o [email protected] $< $(LDFLAGS)
main.o: main.c file_io.h nmsimplex.h corr.h
$(CC) $(CFLAGS) -o [email protected] -fopenmp $< $(LDFLAGS)
main: $(OBJS)
$(CC) -o $(DESTDIR)/[email protected] -fopenmp $^ $(LDFLAGS)
.PHONY: clean
clean:
rm -f *.o *~
謝謝
爲什麼你在鏈接器標誌中包含鏈接時,只編譯? – 2013-07-14 20:50:56
恐怕我做不到。 – 2013-07-14 20:55:21
你是對的。我對這些條款有點新鮮。但是謝謝 – nineties