Với các thiết bị iPhone 5 và các thiết bị armv7 khác hiện đang xuất hiện, có các vấn đề tương thích với khung công tác bên thứ ba hiện có (nguồn đóng) như Flurry. . Một tùy chọn là chờ cho đến khi họ phát hành một bản dựng mới, nhưng tôi đã hy vọng có thể có một lá cờ trình biên dịch hoặc thứ tôi có thể sử dụng trong dự án Xcode của mình. và sử dụng armv7 để thay thế. Có bất cứ điều gì như thế này tồn tại?Có một lá cờ trình biên dịch cho biết thiếu kiến trúc armv7s
Trả lời
Không thể tải một khung không bao gồm kiến trúc được nhắm mục tiêu.
Những gì bạn có thể làm chỉ gửi một ứng dụng armv7 cho đến khi các khung công tác được cập nhật. Ứng dụng sẽ vẫn hoạt động trên iPhone 5, chỉ cần không sử dụng tối ưu hóa hiệu suất mới nhất mà ứng dụng cung cấp.
Hoặc nếu bạn có thể sống mà không có khuôn khổ trên kiến trúc mới, bạn có thể yếu liên kết nó. Nhưng sau đó bạn cần phải kiểm tra mã của bạn nếu nó được tải ở khắp mọi nơi bạn sử dụng các công cụ từ khuôn khổ.
Đã từng là cờ liên kết trong GCC, allow_sub_type_mismatches
, cho phép bạn kết hợp và khớp các phiên bản kiến trúc ARM trong thư viện được liên kết, nhưng dường như chúng đã biến mất trong các phiên bản Xcode gần đây.
Tuy nhiên, điều này thực sự có thể bị tấn công xung quanh theo một cách khác; tạo một bản sao của khuôn khổ, xem nội dung của nó, mở ra các tập tin thư viện mã thực tế bên trong của nó trong một trình soạn thảo hex, và làm như sau thay thế tất cả:
CEFAEDFE 0C000000 09000000
để
CEFAEDFE 0C000000 0B000000
gì bạn Về cơ bản, việc thay đổi tiêu đề bên trong của mỗi đối tượng mã để xác định nó là ARMv7 chứ không phải mã ARMv7 - các bộ lệnh tương thích ngược (hoặc có vẻ như vậy), vì vậy nó sẽ chạy tốt ngay cả với hack này, mặc dù Tôi phải thừa nhận rằng chúng tôi sẽ không biết điều đó cho đến khi chúng tôi thực sự có cơ hội thử nghiệm nó trên iPhone 5.
Dù sao, khi bạn đã sửa đổi khung công tác, chỉ cần thêm cả hai phiên bản vào dự án của bạn và liên kết đến phiên bản phù hợp từ mỗi kiến trúc. Bạn cũng có thể tạo một khung công tác mới bằng cách sử dụng lipo
để hợp nhất các thư viện đã sửa đổi và ban đầu.
Đây chính xác là những gì tôi đã làm và hiển thị như thế nào ở đây - http://www.galloway.me.uk/2012/09/hacking-up-an-armv7s-library/. – mattjgalloway
Cool - chắc chắn sắp xếp quá trình để có một kịch bản tự động cho nó, cộng với nó loại bỏ khả năng vô tình thay đổi CEFAEDFE 0C000000 09000000 mà không liên quan đến tiêu đề Mach-O. – Ertebolle
Ý của bạn là "bị lấy đi trong LLVM"? Đó là một lá cờ liên kết, vì lợi ích của Vị Tiên Tri vĩ đại Zarquon! Không có gì để làm với trình biên dịch, và nó thực sự làm việc, mặc dù nó có lẽ là cách tồi tệ nhất có thể để giải quyết vấn đề này (gợi ý: cách thích hợp là chọn không tham gia ARMv7 bằng cách loại bỏ nó khỏi cài đặt xây dựng Kiến trúc). –
- 1. Không có kiến trúc nào để biên dịch (ONLY_ACTIVE_ARCH = YES, active arch = x86_64, VALID_ARCHS = armv7 armv7s)
- 2. Lỗi biên dịch Xcode iOS6: Không có kiến trúc
- 3. Trình biên dịch/trình biên dịch BCPL cho hệ điều hành và kiến trúc hiện tại?
- 4. Biên dịch chương trình C với kiến trúc cụ thể
- 5. Truyền cờ trình biên dịch qua xcodebuild
- 6. iOS 6 Xcode 4.5 armv7s kiến trúc được hỗ trợ
- 7. thiếu cần kiến trúc ARMv7
- 8. Override biên dịch những lá cờ cho các tập tin đơn
- 9. Cơ sở hạ tầng trình biên dịch LLVM cho các kiến trúc VLIW
- 10. Có một cờ trình biên dịch Xcode cụ thể được thiết lập khi biên dịch cho iPad không?
- 11. Cờ trình biên dịch Xcode toàn dự án
- 12. Trình biên dịch không được hỗ trợ 'GCC 4.2' được chọn cho kiến trúc 'i386'
- 13. Có thể thiết lập trình biên dịch chéo gcc trên Linux để biên dịch các mục tiêu 64 bit trên kiến trúc 32 bit không?
- 14. Biên dịch thư viện cho armv7s - cputype (12) và cpusubtype (11)
- 15. xcode 4.5: Biểu tượng không xác định cho kiến trúc armv7s:
- 16. cảnh báo biên dịch: không có quy tắc xử lý tệp cho kiến trúc i386
- 17. Không thể xác nhận ứng dụng dành cho iOS App Store, kiến trúc ARMv6 thiếu
- 18. phạt của MSVS biên dịch cờ/bigobj
- 19. Thiết kế-Pattern cho một dịch vụ như Kiến trúc
- 20. Android NDK: Cách lấy kiến trúc trình biên dịch trong Android.mk động
- 21. Có ai biết một trình biên dịch miễn phí cho Delphi?
- 22. Không thể đặt cờ trình biên dịch trong Xcode 4.3.3
- 23. Làm thế nào để vượt qua một cờ biên dịch để thử nghiệm trình biên dịch ban đầu cmake?
- 24. Biên dịch và tối ưu hóa cho các kiến trúc đích khác nhau
- 25. Ký hiệu không xác định cho kiến trúc x86_64: Tôi nên sử dụng kiến trúc nào?
- 26. Cờ biên dịch mặc định với Autotools
- 27. Cờ trình biên dịch Visual Studio C++: là gì -Zm200?
- 28. ios5 ARC cờ trình biên dịch để loại trừ một tệp từ ARC là gì?
- 29. Trình biên dịch có trình biên dịch không?
- 30. Trình biên dịch/trình biên dịch/trình biên dịch C++
** Ngăn xếp ngăn xếp không đóng hoặc xóa câu hỏi do NDA giữa các bên thứ ba **. Người kiểm duyệt không ở đây để thực thi các thỏa thuận giữa hai bên thứ ba riêng biệt. Bất kể nó có phải là NDA hay không, nếu đó là một câu hỏi thực tế, có thể trả lời và đáp ứng nguyên tắc chất lượng Stack Overflow thì câu hỏi vẫn mở và chưa được xóa. – casperOne
Xin chào Matt. Chỉ muốn cung cấp cho bạn một bản cập nhật nhanh chóng mà Flurry phát hành 4.0.3 với sự hỗ trợ cho armv7s vào thứ Sáu, ngày 14 tháng 9. Đã có bản phát hành tiếp theo 4.0.4 ngày hôm qua, ngày 17 tháng 9, để loại bỏ một số cảnh báo trình biên dịch. –
Cảm ơn, tôi đã nhận được vài phút sau khi nó được phát hành. – coneybeare