محاولة تجميع X264 و FFMPEG لـ iPhone - "مفقود الذراع البنية المطلوبة في الملف"
سؤال
أحاول تجميع x264 للاستخدام في تطبيق iPhone. أرى أن هناك تعليمات حول كيفية تجميع FFMPEG للاستخدام على النظام الأساسي هنا: http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-october/076618.html ، لكن لا يمكنني العثور على أي شيء مكتمل لتجميع x264 على iPhone. لقد وجدت شجرة المصدر هذه: http://gitorious.org/x264-Arm يبدو أن هذا لديه دعم لمنصة الذراع.
هنا خط التكوين الخاص بي:
./configure --cross-prefix=/usr/bin/ --host=arm-apple-darwin10 --extra-cflags="-B /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/ -I /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/"
...داخليا ايضا configure
أنا أستخدم البرنامج النصي المعالج للغاز (الرابط الأول أعلاه) كجمعي:
gas-preprocessor.pl gcc
عندما أبدأ في التجميع ، فإنه يقطع بعيدًا لفترة قصيرة ، ثم يبصق هذه التحذيرات وقائمة ضخمة من الرموز غير المحددة:
ld: warning: option -s is obsolete and being ignored ld: warning: -force_cpusubtype_ALL will become unsupported for ARM architectures ld: warning: in /usr/lib/crt1.o, missing required architecture arm in file ld: warning: in /usr/X11R6/lib/libX11.dylib, missing required architecture arm in file ld: warning: in /usr/lib/libm.dylib, missing required architecture arm in file ld: warning: in /usr/lib/libpthread.dylib, missing required architecture arm in file ld: warning: in /usr/lib/libgcc_s.1.dylib, missing required architecture arm in file ld: warning: in /usr/lib/libSystem.dylib, missing required architecture arm in file Undefined symbols:
أظن أن المشكلة تتعلق بـ "ذراع الهندسة المعمارية المفقودة في ملف" تحذير ... أي أفكار؟
المحلول
تحقق من هذا الموقع: http://github.com/gabriel/ffmpeg-iphone-buildملف: Build-X264-ARMV6
ستحب ذلك!
الى اللقاء حظا سعيدا!
نصائح أخرى
يواجه العديد من المطورين مشاكل في تجميع مصادر FFMPEG بعد الانتقال إلى XCode 4.3. ويرجع ذلك في الغالب إلى الحقيقة ، على عكس الإصدارات السابقة ، يأتي XCode4.3 كحزمة ، ولا يتضمن أدوات سطر الأوامر في البداية.
لقد حاولنا بناء البرنامج النصي العالمي ؛ يمكنك تنزيل البيئة الكاملة لبناء FFMPEG جنبا إلى جنب مع Xcode4.3 هنا: https://github.com/melnikov/ffmpeg4iphone_4.3
المتطلبات الأساسية:
- يجب أن يكون لديك Xcode4.2 أو 4.3 على جهاز Mac الخاص بك
- يجب أن يكون لديك أدوات سطر أوامر Xcode مثبتة (يمكن تثبيتها عبر Xcode -> التفضيلات -> التنزيلات)
- يجب أن يكون لديك GIT لتثبيت Mac.
التعليمات والتفسيرات:
- ضع نص بناء في بعض الدليل (على سبيل المثال ،/tmp/ffbuild) ، قم بتعيين علامة قابلة للتنفيذ عليه (عن طريق تشغيل 'chmod +x ./build)
- تشغيل البرنامج النصي. ماذا ستفعل:
- سيتم الخروج من أحدث إصدار من FFMPEG في دليل FFMPEG (يمكنك التعليق بأمان هذا إذا كنت قد قمت بالفعل بتسجيل الخروج من FFMPEG إلى الدليل الحالي)
- سيحاول اكتشاف موقع Xcode.app وسيخرج إذا لم يتم تثبيت Xcode
- سيحاول تحديد موقع GCC داخل Xcode.app وسيخرج إذا لم يتم العثور عليه (قد يحدث هذا إذا لم يتم تثبيت أدوات أوامر XCode)
- إذا استمرت الخطوات المذكورة أعلاه بسلاسة ، فسيقوم البرنامج النصي
- إنشاء مجلد build_results
- سيتم تشغيل FFMPEG FFMPEG بعد ذلك لتكوين 3 بنيات مختلفة (ARMV6 ، ARMV7 ، I386) وسيضعها في أدلة معنية داخل مجلد Build_Results
- سيقوم بتشغيل Lipo وإنشاء LIBS عالمي (وسيضعها داخل Build_results/Universal).
راجع للشغل ، لقد اختبرت البرنامج النصي على عدد من أجهزة MAC الخاصة بزميلي ، وبعضها يميل إلى عدم إرجاع أي نتائج في MDFIND لـ XCODE.APP. لذلك ، إذا لم يتم تثبيت برنامج البرنامج النصي "Xcode غير مثبت" ، فلا تتردد في تعيين متغير XcodePath على المسار إلى Xcode.app