سؤال

لقد قضيت بالفعل ساعات لا حصر لها في حيرة من هذا ، واستخدم عمليات البحث في Google وغيرها من أسئلة الفائض المكدس دون جدوى.

لدي تطبيق iPhone/iPad Universal ، والذي يبدو أنه يتجمع بشكل جيد عندما يكون الهدف ARMV6. ومع ذلك ، عندما يكون الجهاز iPad ، أحصل على هذا التحذير:

warning: building for SDK 'Device - iPhone OS 3.2' requires an armv7 architecture.

من الغريب أن التطبيق لا يزال يعمل بشكل رائع على iPad على الرغم من هذا التحذير. ومع ذلك ، أريد أن أفعل الأشياء "الطريق الصحيح" الذي يعنيه هذا في هذه الحالة. عندما أقوم بتبديل البنية المستهدفة إلى ARMV7 ، أحصل على أخطاء ربط:

  "___restore_vfp_d8_d15_regs", referenced from:
     *redacted*

  "___save_vfp_d8_d15_regs", referenced from: 
     *redacted*

ld: symbol(s) not found

collect2: ld returned 1 exit status

أجزاء "تنقيح" من الأخطاء هي إشارات إلى المكتبة الثابتة التي أحاول ربطها.

إليك ما جربته من العديد من الاقتراحات عبر الإنترنت. تم اقتراح كل واحد من هؤلاء أكثر من مرة دون أي تفسير ، مما يقودني إلى الاعتقاد لا أحد يفهم هذه المشكلة تمامًا:

"لا تستخدم أبدًا القائمة المنسدلة في الجزء العلوي الأيسر من نافذة Xcode لاختيار الهدف. بدلاً من ذلك ، قم بتعيين هذا على قاعدة SDK ثم SDK الأساسي إلى iPhone OS 3.0 في التكوين الهدف. اضبط الجهاز الهدف على الهدف المفضل لديك ( iPad ، iPhone OS 3.2 في وضعي.) "

هذا يعطي الخطأ "المكتبة غير موجودة لـ -lcrt1.3.1.o"

"تأكد من أن GCC لا تربط النسخة الخاطئة من المكتبة القياسية. (يجب عليك التأكد من أن Library_Search_Path لا تملك المسار الخاطئ فيه.)"

Library_search_path فارغ بالفعل ، لذلك لا يبدو هذا مناسبًا.

"حاول التجميع مع GCC 4.0 بدلاً من GCC 4.2."

أحصل على خطأ في بناء الجملة داخل ملف رأس Uikit. الخطأ هو "خطأ بناء الجملة قبل" AT_NAME "الرمز المميز." السطر هو "Uikit_extern interface UilocalizedIndExedCollation: nsobject."

مشروع آخر يجمع بشكل جيد مع نفس الإعدادات المستهدفة ، وهو ما يجعلني أتساءل حقًا عن عقلي. هل يمكنني التعامل مع مشروع Xcode فاسد؟

إذا كان أي شخص يعرف ما يحدث بالفعل ولم يكن لديه مرجع أو لا يمانع في شرحه ، فسأكون ممتنًا للغاية.

هتافات!

هل كانت مفيدة؟

المحلول

يختلف VFP بين ARMV7 و ARMV6 بطرق مختلفة. في ARMV7 من الأفضل عادة استخدام النيون. المشكلة هي أن مكتبتك الثابتة تعتمد على VFP في ARMV6 - إما تحتاج إلى تجميع المكتبة في ARMV7 أو الاحتفاظ بالتطبيق بالكامل على ARMV6.

إن العودة إلى GCC 4.0 سخيفة - كان دعم ARMV7 غير موجود في ذلك الوقت في ذلك الوقت ما لم ترد Apple.

نصائح أخرى

كان لدي نفس الأخطاء إلا أنها كانت لـ ARMV6. لقد قمت بإصلاحها عن طريق إلغاء تحديد "ترجمة للإبهام" في إعدادات المشروع للمكتبة الثابتة والمشروع الرئيسي.

بقدر ما يتعلق الأمر بـ AT_NAME ERROR ، فإن أحد الإمكانات هو التحقق مما إذا كنت تفوت الانحدار في الفصل.

لمعرفة المزيد عن خطأ AT_NAME ، تفضل بزيارة الرابط التالي

http://iosdevelopertips.com/xcode/error-syntax-error-before-at_name-token.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top