Tôi đang viết một thư viện tĩnh cho iPhone và tôi tự hỏi liệu những gì tôi đang làm được khuyến nghị hay tôi nên thực hiện một cách tiếp cận khác.Cách thích hợp để liên kết với các thư viện từ thư viện cho iPhone/CocoaTouch
Thư viện tĩnh tôi đang viết phụ thuộc vào libxml2. libxml2 có một thư viện động (dylib) và một thư viện tĩnh (a). Tôi đã thử hai cách tiếp cận.
Tiếp cận một - Khi tôi cố gắng để liên kết chống lại thư viện tĩnh bằng cách thêm "-lxml2" thành "lá cờ mối liên kết khác" xây dựng không thành công với thông báo sau:
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/libtool: file: -lxml2 is not an object file (not allowed in a library)
Tiếp cận hai - Tôi thành công có thể liên kết chống lại các thư viện động từ thư viện tĩnh của tôi nhưng tôi không chắc chắn nếu điều này được cho phép (hoặc cách tiếp cận thích hợp) trên iPhone. Mặc dù tôi đang xây dựng một thư viện tĩnh, Apple có cho phép các thư viện tĩnh liên kết với các thư viện động không? Tôi vẫn đang học về các thư viện tĩnh, nhưng từ sự hiểu biết của tôi mã từ dylib sẽ được kết hợp với mã của tôi để tạo một thư viện, do đó liên kết với dylib không phải là một vấn đề.
Để tóm tắt: [? Xây dựng, nhưng là này chính xác và có thể chấp nhận]
- mylibrary.a - -> libxml2.a [Không làm việc]
- mylibrary.a> libxml2.dylib
Thực ra, XCode cho phép điều này tốt. Tuy nhiên, trong trừu tượng hơn, StackOverflow phải là một nơi để nhanh chóng và dễ dàng tìm thấy * câu trả lời đúng *! Nếu bạn không biết, hoặc bạn không chắc chắn, xin vui lòng không đăng bài như một câu trả lời. Đặt câu hỏi làm rõ trong phần bình luận, hoặc thực hiện một số nghiên cứu cho đến khi bạn * làm * biết câu trả lời đúng! :) – Olie