我是 makefile 的新手。我不确定为什么可执行文件“main”在编译后没有出现。代码编译正常,但编译器说:
-lm: linker input file unused because linking not done
-ltiff: linker input file unused because linking not done
下面是makefile代码:
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 $@ $< $(LDFLAGS) -ltiff
textfile_io.o: textfile_io.c file_io.h
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
main.o: main.c file_io.h nmsimplex.h corr.h
$(CC) $(CFLAGS) -o $@ -fopenmp $< $(LDFLAGS)
main: $(OBJS)
$(CC) -o $(DESTDIR)/$@ -fopenmp $^ $(LDFLAGS)
.PHONY: clean
clean:
rm -f *.o *~
谢谢
最佳答案
为什么会收到这两个警告:
main.o: main.c file_io.h nmsimplex.h corr.h
$(CC) $(CFLAGS) -o $@ -fopenmp $< $(LDFLAGS)
您正在编译而不是链接,不需要放置作为链接器标志的 $(LDFLAGS)
。这些标志仅与 main
目标相关,与 main.o
目标无关。
Makefile- not outputting the executable
添加目标:
all: main
在 DEPS
定义之后。 all
目标将首先执行,然后执行 main
目标。
关于c - Makefile-不输出可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17643628/