C 使用makefile找不到SHA1库链接
编译时,我无法将sha库与makefile链接 这是我的makefile: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 $
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