سؤال

أحاول تجميع Zeromq C ملزمة من أجل أن أتمكن من استخدامه على iPhone ، إليك خيارات التكوين الخاصة بي:

./configure --host=arm-apple-darwin --enable-static=yes --enable-shared=no CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/arm-apple-darwin10-gcc-4.2.1 CFLAGS="-pipe -std=c99 -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=3.1.2 -gdwarf-2 -mthumb -I/Library/iPhone/include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk -mdynamic-no-pic" CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/cpp AR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar AS=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/as LIBTOOL=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool STRIP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/strip RANLIB=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ranlib

يقوم بالفعل بتكوين وتجمع بشكل جيد ، ولكن عندما أقوم بإضافته إلى قسم أطر عمل XCode ، أحذر: ld: warning: in /path/to/app/libzmq.a, file was built for unsupported file format which is not the architecture being linked (armv7) والكثير من الرمز لم يتم العثور على الأخطاء.

إذا قمت بتغيير الهندسة المعمارية النشطة الحالية من ARMV6 إلى ARMV7 ، فإن رسالة التحذير ستغيرها إلى ARMV6. ما الخطأ الذي افعله ؟

شكرا يا دان

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

المحلول

يبدو أنك تقوم ببناء ثنائي ARMV6/ARMV7 عالمي لـ iPhone (هذا هو الافتراضي ، بحيث يكون من المنطقي). هذا يعني أنك تحتاج إلى بناء مكتبة عالمية لربطها. يبني على حد سواء المكتبات ، ثم استخدمها lipo للجمع بين الاثنين.

على سبيل المثال ، قم ببناء armv6 واحد ووضعه على armv6/libfoo.a, و ARMV7 واحد في armv7/libfoo.a. ثم اركض

lipo -arch armv6 armv6/libfoo.a -arch armv7 armv7/libfoo.a -output libfoo.a -create

لإنشاء مكتبة عالمية libfoo.a.

نصائح أخرى

بالنظر إلى رسالة التحذير من ld, ، أعتقد أنك لا تقوم بتجميع المكتبة للنظام الأساسي الصحيح. وبالنظر إلى أنك تستخدم configure, ، أعتقد أنك تحاول تجميع المكتبة خارج Xcode ثم إحضارها إلى Xcode لاحقًا لربطها.

ربما يمكنك محاولة تشغيل التكوين لإعداد رؤوسك ، ولكن هل تخطو التجميع الفعلي داخل Xcode؟

هناك الكثير من الأسئلة ذات الصلة هنا حول تجميع مكتبات C أو C ++ لجهة خارجية (خارجي) لاستخدامها في مشاريع iPhone.

إنشاء مكتبة ثابتة لجهاز iPhone

الخجل: بحاجة إلى مساعدة في تجميع هذه المكتبة لجهاز iPhone

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