2011-10-24 43 views
15

Tôi có một số thư viện tĩnh mà tôi đã xây dựng để sử dụng trên kiến ​​trúc armv7. Khi tôi cố gắng sử dụng chúng trong một dự án iOS mà tôi testrun trên giả lập iPhone 5.0, tôi nhận được lỗi nói với tôi về undefined symbols for architecture i386 trong các thư viện tĩnh của tôi.Trình mô phỏng iOS trên mac đang chạy kiến ​​trúc i386, không phải armv7?

Vì vậy, tôi đoán điều này có nghĩa là trình giả lập iphone muốn thư viện được biên dịch cho i386? Vậy điểm mô phỏng là gì - tại sao nó không mô phỏng kiến ​​trúc armv7?

Vì vậy, cách duy nhất tôi có thể kiểm tra thư viện tĩnh của mình là kết nối thiết bị iOS vật lý và chạy nó?

Hay tôi đã hiểu sai?

+0

Vấn đề này là lý do tại sao các dự án Android sử dụng QEMU, một giả lập . Nó chậm hơn nhiều so với trình mô phỏng iOS. –

Trả lời

26

Vì vậy, tôi đoán đây có nghĩa là mô phỏng iphone muốn thư viện biên soạn cho i386? Thế nào là điểm của giả lập sau đó - tại sao nó không thi đua kiến ​​trúc armv7 là tốt?

Bạn đã trả lời câu hỏi của riêng mình. Đây là trình mô phỏng , không phải là trình mô phỏng . Vì vậy nó là một chương trình Mac OSX, chạy trên kiến ​​trúc i386. Nếu bạn biên dịch các thư viện tĩnh của bạn cho i386, bạn sẽ có thể sử dụng chúng trên trình mô phỏng.

9

Tôi không phải là rất chắc chắn nhưng i386 là dành cho SimulatorARMv7 là dành cho Devices mà bạn đã kết nối với máy của bạn.

4

Bạn thực sự có thể biên dịch ứng dụng thông qua công cụ dòng lệnh Xcode sử dụng kiến ​​trúc i386 (cũng có cách chạy nó trong giao diện người dùng Xcode bằng cách sửa đổi cài đặt xây dựng).

xcodebuild -sdk iphonesimulator6.1 -arch i386 VALID_ARCHS="i386 armv7 armv7s" clean install 

Chạy lệnh này trong thư mục bạn có tệp projectName.xcodeproj.

Dưới đây là bảng phân tích về các kịch bản:

-sdk iphonesimulator6.1 // Build the app on iPhone simulator 6.1 
-arch i386 // Build your app using i386 architecture 
VALID_ARCHS="i386 armv7 armv7s" // Specify these architectures are valid 
clean install // Clean all the builds then re-build and install 
+0

Cảm ơn, điều này đã làm việc cho tôi về các yêu cầu mới trên Biểu đồ mở của Facebook khi gửi các đối tượng để xem xét – estemendoza

0

Nếu bạn muốn thử mô phỏng với i386 chỉ đi cho = < iPhone 5.

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