我能够使用
使用openssl运行和编译我的c示例程序gcc azureconn.c -o azureconn -lssl -lcrypto
但是当我尝试在make文件中使用带有LDLIBS标志的makefile进行编译时,由于未定义的参考OPENSSL_Init而导致错误 以下是我的制作文件
DEFINES = $(GDEFINES)
INCLUDES = $(DIR_PATH)
CFLAGS = $(GCFLAGS) $(DEFINES) $(INCLUDES) -D_GNU_SOURCE
LDLIBS = -lssl -lcrypto
MAIN_OBJECTS = xxxx.o yyy.o zzz.o \
aaaa.o
all: $(MAIN_OBJECTS)
mv $(MAIN_OBJECTS) $(BIN_PATH)
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@ $(LDLIBS)
clean:
rm -rf *.o
错误
对“ OPENSSL_init_ssl” collect2的未定义引用:错误:返回了ld 1个退出状态
答案 0 :(得分:0)
自从您更改了问题。哪个模块具有main(...)
功能?我以为是azureconn.c,因为您说过可以编译。
gcc azureconn.c -o azureconn -lssl -lcrypto
尝试使用这样的规则来构建可执行文件;
azureconn:
$(CC) $(CFLAGS) azureconn.c -o $@ $(LDLIBS)
%.o:%.c
规则通常不用于链接,只是创建顾名思义的目标文件