2014-07-21 7 views
0

C에서 redis를 위해 클라이언트를 컴파일하고 싶습니다. libevent 라이브러리와 hiredis 파일을 다운로드하여 설치했습니다. 나는이 명령을 사용했습니다 :hiredis "undefined reference to"컴파일러 오류

gcc -I/home/tasos/Dropbox/lists/hiredis example-libevent.c -levent 

을하지만 이러한 오류를 얻을 :

/tmp/ccxoerYJ.o: In function `redisLibeventReadEvent': 
example-libevent.c:(.text+0x28): undefined reference to `redisAsyncHandleRead' 
/tmp/ccxoerYJ.o: In function `redisLibeventWriteEvent': 
example-libevent.c:(.text+0x56): undefined reference to `redisAsyncHandleWrite' 
/tmp/ccxoerYJ.o: In function `getCallback': 
example-libevent.c:(.text+0x2d2): undefined reference to `redisAsyncDisconnect' 
/tmp/ccxoerYJ.o: In function `main': 
example-libevent.c:(.text+0x393): undefined reference to `redisAsyncConnect' 
example-libevent.c:(.text+0x3f3): undefined reference to `redisAsyncSetConnectCallback' 
example-libevent.c:(.text+0x404): undefined reference to `redisAsyncSetDisconnectCallback' 
example-libevent.c:(.text+0x45d): undefined reference to `redisAsyncCommand' 
example-libevent.c:(.text+0x47d): undefined reference to `redisAsyncCommand' 
collect2: ld returned 1 exit status 

왜 작동하지 않는?

+0

감사합니다. 덕분에 적은 수의 오류 – TasostheGreat

+0

가 인쇄되어 성공적으로 컴파일되었습니다. 내가 그 컴파일 옵션을 어디에서 발견 했을까? – TasostheGreat

답변

4

명령에 -levent-lhiredis 컴파일 옵션을 사용하십시오.

+0

다음을 시도하고 있습니다 >>> gcc -c redismake.c -levent -lhiredis -I '/ home/우분투/workspace/c/hiredis' gcc redismake.o -o redismake <<< 그리고 나는이 오류가 발생합니다 : redismake.o : 함수'main '에서 : redismake.c :(. 텍스트 + 0x22) : 정의되지 않은'redisConnect '참조 collect2 : 오류 : ld가 1 종료 상태를 반환했습니다. 이견있는 사람 ?! –