compress 라는 함수의 위치가 아마도 libz 에 있는 것 같습니다.
그 때문에 이 z library 를 컴파일시 링크를 시켜 주라는 것입니다.
혹시 libz 이 설치되어 있지 않다면 설치하셔야 할것 같습니다.
방금 rpm -qa 로 확인해 보니 zlib-devel 패키지가 깔려 있군요. 아마도 이것이 깔려 있어야 할것 같은 생각이 드는군요.
compress 라는 함수는 아마도 data 를 압축하는 데 사용되는 함수 같습니다. 그러니 이 함수가 있는 위치는 mysqlclient 라는 라이브러리가 아니고 zlib 에 있는 함수일것이라는 생각이 듭니다. 그러니 당연히 그 라이브러리를 포함시키라는 얘기겠지요.
> In MySQL-devel-3.23.12c-1 rpm , the c source test.c was compiled well
> but in MySQL-devel-3.23.15-1 rpm , when compileing same source I met e
> rror message
>
> as follows;
>
> ======================================================================
>
> [root@cboss cboss]# gcc -g -o test test.c -L/usr/lib/mysql -lmysqlclie
> nt
>
> /usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncomp
> ress':
> my_compress.o(.text+0x97): undefined reference to `uncompress'
> /usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_compre
> ss_alloc':
> my_compress.o(.text+0x12b): undefined reference to `compress'
> collect2: ld returned 1 exit status
> ============================================================
>
> 위와 같은 질문에 Tim의 답변 내용이 You need to add -lz to your command
> line when you link. 입니다.
> 그래서
> [root@cboss cboss]# gcc -g -o test test.c -L/usr/lib/mysql -lmysqlclie
> nt -lz
> 했더니
> /usr/bin/ld: cannot find -lz
> collect2: ld returned 1 exit status
> 라는 메세지로 끝나는 군요..
> Tim이 뭘 하라는 건지 좀 알려주시곘습니까?
>
> 그럼 즐통
|