2015-08-20 14 views
5

Trong dự án của tôi, tôi có một số lỗi liên kết, mỗi lỗi trong số đó trỏ đến thiếu libz. Dưới đây là ví dụ:Libz không được liên kết trong XCode

Undefined symbols for architecture arm64: 
"_inflateReset2", referenced from: 
      _png_inflate_claim in libcocos2d iOS.a(pngrutil.o) 
     "_inflateEnd", referenced from: 
      cocos2d::unzCloseCurrentFile(void*) in libcocos2d iOS.a(unzip.o) 
      cocos2d::ZipUtils::inflateMemoryWithHint(unsigned char*, long, unsigned char**, long*, long) in libcocos2d iOS.a(ZipUtils.o) 
      _png_destroy_read_struct in libcocos2d iOS.a(pngread.o) 
      +[GAICompressionUtil gai_dataByInflatingBytes:length:isRawData:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o) 
      _FT_Stream_OpenGzip in libcocos2d iOS.a(ftgzip.o) 
      _ft_gzip_stream_close in libcocos2d iOS.a(ftgzip.o) 
      _FT_Gzip_Uncompress in libcocos2d iOS.a(ftgzip.o) 
      ... 
     "_deflate", referenced from: 
    +[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o) 
     "_deflateInit2_", referenced from: 
      +[GAICompressionUtil gai_dataByCompressingBytes:length:compressionLevel:mode:] in libGoogleAnalyticsServices.a(GAICompressionUtil.o) 
     "_inflateReset", referenced from: 
      _png_decompress_chunk in libcocos2d iOS.a(pngrutil.o) 
      _FT_Stream_OpenGzip in libcocos2d iOS.a(ftgzip.o) 
      _ft_gzip_file_io in libcocos2d iOS.a(ftgzip.o) 

Vì vậy, trông giống như libs bên ngoài (cocos2d & GA) không thể tìm thấy lib này. Tôi có nó trong Link nhị phân với các thư viện cho mục tiêu của tôi, cũng có cờ -lz trong các cờ Linger khác. Loại bỏ bất kỳ lỗi nào trong số này giữ lỗi này.

Điều gì có thể gây ra sự cố này? Làm thế nào điều này có thể được giải quyết?

(Tôi đã cố gắng những thứ như khởi động lại XCode, làm sạch dữ liệu thu được, vv)

Trả lời

2

Có điều gì đó rung rinh với phiên bản hiện tại của XCode. Bạn cần phải xóa tất cả các tham chiếu zlib/libz khỏi các lần thử trước đó của bạn trong dự án của bạn, sau đó mở/usr/lib trong Finder và tự tay kéo libz.dylib vào dự án của bạn cùng với các tệp nguồn của bạn. Đó là những gì đã làm việc cho tôi năm phút trước.

Tôi không biết chuyện gì đang xảy ra. Tôi có một dự án nguyên mẫu bằng cách sử dụng zlib mà biên dịch đúng cách, nhưng khi tôi sao chép & dán mã zip & sao chép các tệp hỗ trợ sang dự án thực của tôi, tôi không thể biên dịch được, với cùng một lỗi thiếu zlib. Dự án nguyên mẫu tiếp tục biên dịch. Không có sự khác biệt trong thiết lập giữa các dự án! Về dự án thực sự của tôi, tôi đã thử thêm libz.dylib và phiên bản không liên kết (libz.1.dylib), tôi đã thử thêm các -lz theo cách thủ công vào các tùy chọn xây dựng liên kết, cả hai đều không có kết quả. Yay Finder! Tôi hy vọng điều này cũng phù hợp với bạn.

+0

Hoàn hảo, cảm ơn! – Polina

Các vấn đề liên quan