Tôi có dự án với sự phụ thuộc vào thư viện tĩnh của bên thứ ba và ba thư viện. Trong XCode 3.X, để dự án của tôi biên dịch, tôi đã phải sử dụng cờ -force_load trong cài đặt xây dựng "Cờ kết nối khác" và chỉ định từng thư viện ba20 mà tôi muốn đưa vào.Tại sao-force_load không còn cần thiết cho phụ thuộc ba20 của tôi trong XCode 4.2?
Khi cố tạo bản lưu trữ trong XCode 4.2, tôi gặp phải lỗi "biểu tượng trùng lặp". Tôi đã giải quyết vấn đề này bằng cách xóa bảy cờ riêng biệt-force_load đề cập đến từng thư viện trong số ba thư viện mà tôi có một sự phụ thuộc.
Dự án của tôi hiện đã xây dựng thành công.
Tôi tự hỏi liệu có ai đó có thể giải thích lý do tại sao thay đổi này hoạt động không? Có một lỗi mà XCode 4.2 đã sửa, hay là thay đổi hành vi? This post suggests có lỗi trong XCode 3.2, nhưng sẽ rất tuyệt nếu ai đó có thể làm sáng tỏ thêm về chủ đề này cho tôi vì vậy tôi có thể chắc chắn rằng tôi không có khả năng làm điều gì sai bằng cách xóa các cờ -force_load này.
Cảm ơn!
Tuyệt vời, do đó, nó chắc chắn là một lỗi, và theo kinh nghiệm nó dường như đã được sửa chữa (mặc dù Apple đã không thông báo bất cứ điều gì ...) Cảm ơn bạn! – esilver
Tôi nghĩ rằng bạn vẫn cần -ObjC để tải Danh mục, và điều này vẫn sẽ cung cấp cho bạn "trùng lặp biểu tượng" lỗi nếu bạn làm, còn nguyên vẹn có biểu tượng trùng lặp, phải không? – hooleyhoop
@hooleyhoop - Phải, như tôi nói ở trên, bạn vẫn cần -ObjC cho các danh mục, nhưng trong kinh nghiệm của tôi, loại bỏ cờ liên kết '-all_load' sẽ loại bỏ gần như tất cả các lỗi biểu tượng trùng lặp mà bạn nhìn thấy. Nếu tôi nhớ chính xác, nhiều biểu tượng đến từ các khuôn khổ được liên kết với nhiều thư viện tĩnh, thì cả hai thư viện tĩnh đều được sử dụng trong cùng một ứng dụng. Tất nhiên, '-ObjC' sẽ không bảo vệ bạn khỏi trường hợp các danh mục khác nhau đều xác định cùng tên phương thức như một phần mở rộng cho cùng một lớp, nhưng các quy ước đặt tên thích hợp nên ngăn chặn điều đó. –