Gần đây tôi đã cập nhật lên iPhone SDK 4.0 và không còn có thể xây dựng dự án của tôi cho trình giả lập iPhone. Vấn đề là các lớp học của một trong những thư viện của riêng tôi không còn có thể được tìm thấy bằng cách ld:Lỗi trình kết nối (chỉ giả lập) với thư viện riêng sau khi cập nhật lên iPhone SDK 4.0
"_OBJC_CLASS_$_Book", referenced from:
objc-class-ref-to-Book in Category.o
(maybe you meant: ...)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Tôi đã đọc một số bài viết khác về vấn đề tương tự, như ví dụ here. "Thật không may", vấn đề của tôi không liên quan gì đến khung SDK, nhưng với lib của riêng tôi, vì vậy các giải pháp được đề cập không có ở đây.
Thư viện được bao gồm trong "Liên kết nhị phân với thư viện" của đường dẫn tìm kiếm thư viện của tôi là chính xác (đã kiểm tra điều này bằng XCode và với trình soạn thảo văn bản thuần túy trực tiếp trong tệp dự án của tôi) và được thêm chính xác vào lệnh gcc.
Tôi đang sử dụng iPhone Simulator 3.2 làm SDK cơ sở nhưng vấn đề tương tự cũng xảy ra với SDK 4.0. Một lần nữa, điều này làm việc với mục tiêu thiết bị của tôi nhưng không phải với mục tiêu giả lập của tôi. Nó làm việc với cả hai, tuy nhiên, trước khi tôi cập nhật từ iPhone SDK 3.2 đến 4.0. Tôi cũng có thể tạo lại lỗi này bằng cách tạo một dự án mới chỉ với một tệp và lib được liên kết. Tuy nhiên, lib sẽ không sao vì nó hoạt động với trình mô phỏng 3.2 trước khi tôi cập nhật XCode và SDK của mình.
More Sự kiện: Mac OS X 10.6.3, XCode 3.2.3 64-Bit, iPhone OS 3.2, GCC 4.2
Bất kỳ trợ giúp sẽ được đánh giá cao.
CHỈNH SỬA:
Sau khi cài đặt lại SDK 3.2, mọi thứ hoạt động như mong đợi một lần nữa. Cần lưu ý rằng SDK trong thư mục /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs được ghi đè bằng mỗi lần cài đặt. Sau đó tôi đã cố gắng cài đặt lại SDK 4.0 một lần nữa và lỗi tương tự như trên xảy ra. Tôi đã không thay đổi bất cứ điều gì trong dự án của tôi và luôn luôn sử dụng 3.2 như Base SDK.
Vấn đề do đó có thể có thể được thu hẹp xuống các tùy chọn sau:
- Apple thay đổi sth. trong SDK mô phỏng 3.2 gây ra sự cố
- thay đổi trong XCode 3.2.3 gây ra sự cố sai/thiếu cờ trình biên dịch trong khi xây dựng thư viện của riêng tôi (những lá cờ đó, sẽ chỉ gây ra sự cố với SDK đã thay đổi hoặc IDE đã thay đổi)
Tôi cũng đã làm một thư mục khác biệt trên /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.2.sdk cho cả phiên bản cũ và mới của thư mục này. Hóa ra là có những thay đổi nhỏ trong SDK "giống nhau". Tôi vẫn nghĩ rằng đó là một vấn đề cờ IDE/trình biên dịch, mặc dù.
Bất kỳ ai có ý tưởng nào? Tôi không muốn dính vào 3.2 mãi mãi ...
Tôi gặp sự cố tương tự. Bí ẩn nó chỉ xảy ra cho "Release" nhưng cũng không phải cho "Debug" xây dựng, eventhough tôi đã không thay đổi bất cứ điều gì sau khi cập nhật lên SDK 4.0. Tuy nhiên, tôi chưa xem xét điều này thêm nữa. – Stiefel