我一直在尝试编译hiredis提供的示例之一,但是每次都找不到。我已经做了make && sudo make install
。为了进行编译,我使用了-lhiredis -levent
标志。但是它不断告诉我这个错误:
/tmp/cc4x5uX7.o: In function `redisAeAddRead':
example-async.c:(.text+0xb8): undefined reference to `aeCreateFileEvent'
/tmp/cc4x5uX7.o: In function `redisAeDelRead':
example-async.c:(.text+0x10b): undefined reference to `aeDeleteFileEvent'
/tmp/cc4x5uX7.o: In function `redisAeAddWrite':
example-async.c:(.text+0x16a): undefined reference to `aeCreateFileEvent'
/tmp/cc4x5uX7.o: In function `redisAeDelWrite':
example-async.c:(.text+0x1bd): undefined reference to `aeDeleteFileEvent'
/tmp/cc4x5uX7.o: In function `disconnectCallback':
example-async.c:(.text+0x494): undefined reference to `aeStop'
/tmp/cc4x5uX7.o: In function `main':
example-async.c:(.text+0x50b): undefined reference to `aeCreateEventLoop'
example-async.c:(.text+0x5fb): undefined reference to `aeMain'
collect2: error: ld returned 1 exit status
我不确定,但是我认为这与编译器没有找到在#include <ae.h>
处引用的库有关,因为它向我显示的第一个错误是它没有找到该标头。
我看到redis源有一个ae.h
,ae.c
和所有这些库,因此,为了使其正常工作,我拼命尝试将它们复制到我的/usr/local/include
目录中。一旦完成,它就会向我显示上面显示的错误。
我认为可以通过安装该库轻松解决,但我不知道如何。谁能帮我这个?如果不是这个问题,那么有人可以解释发生了什么以及为什么我不能编译这些示例。