Невозможно собрать zpipe.c (пример программы Zlib) - PullRequest
1 голос
/ 21 июля 2011

Я пытаюсь собрать zpipe.c.Я установил zlib 1.2.5 через конфигурацию;делать;сделать установку.Я переместил свой файл zpipe.c в настоящий каталог zlib-1.2.5, куда он включает заголовочный файл zlib.h.

Вот что я получаю, когда пытаюсь собрать:

[sk@lldma zlib-1.2.5]$ gcc zpipe.c 
/tmp/ccZ2OBz0.o: In function `def':
zpipe.c:(.text+0x3c): undefined reference to `deflateInit_'    
zpipe.c:(.text+0x8f): undefined reference to `deflateEnd'
zpipe.c:(.text+0xe2): undefined reference to `deflate'
zpipe.c:(.text+0x163): undefined reference to `deflateEnd'
zpipe.c:(.text+0x1df): undefined reference to `deflateEnd'
/tmp/ccZ2OBz0.o: In function `inf':
zpipe.c:(.text+0x22d): undefined reference to `inflateInit_'
zpipe.c:(.text+0x280): undefined reference to `inflateEnd'
zpipe.c:(.text+0x2c1): undefined reference to `inflate'
zpipe.c:(.text+0x312): undefined reference to `inflateEnd'
zpipe.c:(.text+0x36e): undefined reference to `inflateEnd'
zpipe.c:(.text+0x398): undefined reference to `inflateEnd'

README не говорит ничего конкретного о сборке в Linux, и я вижу, что deflate.h и другие файлы .h находятся в каталоге ...

Исходный код zpipe.cздесь: http://www.zlib.net/zpipe.c

Есть идеи?TIA

[sk@lldma zlib-1.2.5]$ ls
adler32.c       example64    infback.c      Makefile.in    watcom
adler32.lo      example64.o  infback.lo     make_vms.com   win32
adler32.o       example.c    infback.o      minigzip       zconf.h
amiga           example.o    inffast.c      minigzip64     zconf.h.cmakein
ChangeLog       examples     inffast.h      minigzip64.o   zconf.h.in
CMakeLists.txt  examplesh    inffast.lo     minigzip.c     zlib2ansi
compress.c      FAQ          inffast.o      minigzip.o     zlib.3
compress.lo     gzclose.c    inffixed.h     minigzipsh     zlib.3.pdf
compress.o      gzclose.lo   inflate.c      msdos          zlib.h
configure       gzclose.o    inflate.h      nintendods     zlib.map
contrib         gzguts.h     inflate.lo     old            zlib.pc
crc32.c         gzlib.c      inflate.o      qnx            zlib.pc.in
crc32.h         gzlib.lo     inftrees.c     README         zpipe.c
crc32.lo        gzlib.o      inftrees.h     treebuild.xml  zutil.c
crc32.o         gzread.c     inftrees.lo    trees.c        zutil.h
deflate.c       gzread.lo    inftrees.o     trees.h        zutil.lo
deflate.h       gzread.o     libz.a         trees.lo       zutil.o
deflate.lo      gzwrite.c    libz.so        trees.o
deflate.o       gzwrite.lo   libz.so.1      uncompr.c
doc             gzwrite.o    libz.so.1.2.5  uncompr.lo
example         INDEX        Makefile       uncompr.o

1 Ответ

14 голосов
/ 21 июля 2011

Проблема не в заголовках, скомпилируется нормально. Проблема в том, что компоновщик не может найти библиотечные функции. Попробуйте скомпилировать это:

gcc zpipe.c -lz

Это скомпилируется с libz.a или libz.so (в зависимости от того, статична ли вы или динамически компилируется), и если исправлено, эти объектные файлы должны содержать отсутствующие функции.

...