C 使用makefile找不到SHA1库链接

C 使用makefile找不到SHA1库链接,c,makefile,sha1,C,Makefile,Sha1,编译时,我无法将sha库与makefile链接 这是我的makefile: CFLAGS= -g -Wall -Werror -std=c99 -pedantic LDFLAGS=-lssl -lcrypto CC = gcc LD = gcc OBJS = dhtnode.o PROG = dhtnode .c.o: gcc $< -o $@ $(CFLAGS) all: $(PROG) $(PROG): $(OBJS) $(LD) $(LDFLAGS) $(OBJS) -o $

编译时,我无法将sha库与makefile链接

这是我的makefile:

CFLAGS= -g -Wall -Werror -std=c99 -pedantic 
LDFLAGS=-lssl -lcrypto
CC = gcc
LD = gcc
OBJS = dhtnode.o
PROG = dhtnode

.c.o:
gcc $< -o $@ $(CFLAGS)

all: $(PROG)

$(PROG): $(OBJS)
$(LD) $(LDFLAGS) $(OBJS) -o $(PROG)

dhtnode.o: dhtnode.c dhtpackettypes.h
$(CC) $(CFLAGS) $(LDFLAGS) dhtnode.c

clean:
/bin/rm -f *.o dhtnode
有人能告诉我makefile或可能的eclipse设置有什么问题吗


提前谢谢

编译对象文件时,不需要
LDFLAGS
。您还需要使用
-c
编译器标志来生成对象文件,而不是链接二进制文件:

dhtnode.o: dhtnode.c dhtpackettypes.h
    $(CC) $(CFLAGS) -c dhtnode.c
进行此更改后,程序为我成功编译并链接

C/p2p/dhtnode.c:107: undefined reference to `SHA1'
dhtnode.o: dhtnode.c dhtpackettypes.h
    $(CC) $(CFLAGS) -c dhtnode.c