2013-12-06 1 views
5

Я скачал последнюю версию libzip и в настоящее время пытаюсь построить его на OSX и неудачу:crc32() отсутствует при создании libzip на OSX 10,9

Linking C shared library libzip.dylib 
Undefined symbols for architecture x86_64: 
    "_crc32", referenced from: 
     __zip_filerange_crc in zip_filerange_crc.o 
     _crc_read in zip_source_crc.o 
     _decrypt in zip_source_pkware.o 
     __zip_string_crc32 in zip_string.o 
    (maybe you meant: __zip_string_crc32) 
    "_deflate", referenced from: 
     _compress_read in zip_source_deflate.o 
    (maybe you meant: _zip_source_deflate) 
    "_deflateEnd", referenced from: 
     _deflate_compress in zip_source_deflate.o 
    "_deflateInit2_", referenced from: 
     _deflate_compress in zip_source_deflate.o 
    "_inflate", referenced from: 
     _decompress_read in zip_source_deflate.o 
    "_inflateEnd", referenced from: 
     _deflate_decompress in zip_source_deflate.o 
    "_inflateInit2_", referenced from: 
     _deflate_decompress in zip_source_deflate.o 
    "_zError", referenced from: 
     __zip_error_strerror in zip_error_strerror.o 
     _zip_error_to_str in zip_error_to_str.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make[3]: *** [libzip.3.0.dylib] Error 1 
make[2]: *** [CMakeFiles/zip.dir/all] Error 2 
make[1]: *** [CMakeFiles/zip.dir/rule] Error 2 
make: *** [zip] Error 2 

Она нуждается в функции CRC32, но это Безразлично» t включить один и не похоже на что-либо другое. Кто-нибудь смог создать libzip на OSX 10.9?

+1

Вам, кажется, не хватает ссылки на libz. – alk

+0

Вам может быть проще использовать систему упаковки, такую ​​как macports, homebrew или fink, чтобы построить библиотеку, в которой порты будут работать с зависимостями. – Mark

+0

Пожалуйста, сделайте так, как было предложено компоновщиком: 'use -v, чтобы увидеть invocation', затем покажите последний здесь. – alk

ответ

11

Возможно, вам недостает ссылки a libz.

Получить файлы разработчика zlib где-нибудь и добавить -lz в команду связи.

+3

libz уже включен в /usr/lib/libz.dylib, поэтому -lz должно быть достаточно – Mark