كيفية بناء ohNet لنظام التشغيل iOS؟

أحاول إنشاء مكدس ohNet UPnP من openhome.org للتنفيذ على iPhone و iPhoneSimulator. لقد رأيت في أماكن مختلفة على الويب أن هناك منفذًا إلى iOS ، وفي الواقع هناك بعض الإشارة إلى مبنى iOS في Makefile. بعد بعض تحرير مسارات $ DEVROOT و $ SDKROOT ، يمكنني تجميع العديد من المصادر ، ولكن توقف البناء مع وجود خطأ في:

g++ -pthread  -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib/ -arch armv6  -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib/system -shared -shared-libgcc  -o Build/Obj/Mac/arm/Release/libohNet.dylib Build/Obj/Mac/arm/Release/Ascii.o Build/Obj/Mac/arm/Release/AsyncC.o Build/Obj/Mac/arm/Release/AsyncPrivate.o Build/Obj/Mac/arm/Release/Bonjour.o Build/Obj/Mac/arm/Release/Buffer.o Build/Obj/Mac/arm/Release/Discovery.o Build/Obj/Mac/arm/Release/Debug.o Build/Obj/Mac/arm/Release/Converter.o Build/Obj/Mac/arm/Release/CpDeviceCore.o Build/Obj/Mac/arm/Release/CpDeviceC.o Build/Obj/Mac/arm/Release/CpDeviceStd.o Build/Obj/Mac/arm/Release/CpDeviceDvCore.o Build/Obj/Mac/arm/Release/CpDeviceDvStd.o Build/Obj/Mac/arm/Release/CpDeviceDvC.o Build/Obj/Mac/arm/Release/CpDeviceUpnpCore.o Build/Obj/Mac/arm/Release/CpDeviceUpnpC.o Build/Obj/Mac/arm/Release/CpDeviceUpnpStd.o Build/Obj/Mac/arm/Release/CpiDevice.o Build/Obj/Mac/arm/Release/CpiDeviceDv.o Build/Obj/Mac/arm/Release/CpiDeviceUpnp.o Build/Obj/Mac/arm/Release/CpiService.o Build/Obj/Mac/arm/Release/CpiStack.o Build/Obj/Mac/arm/Release/CpiSubscription.o Build/Obj/Mac/arm/Release/CpProxy.o Build/Obj/Mac/arm/Release/CpProxyC.o Build/Obj/Mac/arm/Release/CpServiceC.o Build/Obj/Mac/arm/Release/DvDevice.o Build/Obj/Mac/arm/Release/DvDeviceStd.o Build/Obj/Mac/arm/Release/DvDeviceC.o Build/Obj/Mac/arm/Release/DviDevice.o Build/Obj/Mac/arm/Release/DvInvocationC.o Build/Obj/Mac/arm/Release/DvInvocationStd.o Build/Obj/Mac/arm/Release/DviProtocolUpnp.o Build/Obj/Mac/arm/Release/DviProviderSubscriptionLongPoll.o Build/Obj/Mac/arm/Release/DvOpenhomeOrgSubscriptionLongPoll1.o Build/Obj/Mac/arm/Release/DviServer.o Build/Obj/Mac/arm/Release/DviServerUpnp.o Build/Obj/Mac/arm/Release/DviServerWebSocket.o Build/Obj/Mac/arm/Release/DviService.o Build/Obj/Mac/arm/Release/DviStack.o Build/Obj/Mac/arm/Release/DviSubscription.o Build/Obj/Mac/arm/Release/DviPropertyUpdateCollection.o Build/Obj/Mac/arm/Release/DvProvider.o Build/Obj/Mac/arm/Release/DvProviderC.o Build/Obj/Mac/arm/Release/DvServerUpnp.o Build/Obj/Mac/arm/Release/DvServerUpnpC.o Build/Obj/Mac/arm/Release/DeviceXml.o Build/Obj/Mac/arm/Release/Error.o Build/Obj/Mac/arm/Release/EventUpnp.o Build/Obj/Mac/arm/Release/Exception.o Build/Obj/Mac/arm/Release/Fifo.o Build/Obj/Mac/arm/Release/Http.o Build/Obj/Mac/arm/Release/DNSCommon.o Build/Obj/Mac/arm/Release/DNSDigest.o Build/Obj/Mac/arm/Release/mDNS.o Build/Obj/Mac/arm/Release/uDNS.o Build/Obj/Mac/arm/Release/MdnsPlatform.o Build/Obj/Mac/arm/Release/MdnsProvider.o Build/Obj/Mac/arm/Release/Maths.o Build/Obj/Mac/arm/Release/Md5.o Build/Obj/Mac/arm/Release/NetworkAdapterList.o Build/Obj/Mac/arm/Release/Network.o Build/Obj/Mac/arm/Release/Parser.o Build/Obj/Mac/arm/Release/Printer.o Build/Obj/Mac/arm/Release/ProtocolUpnp.o Build/Obj/Mac/arm/Release/Queue.o Build/Obj/Mac/arm/Release/RefCounter.o Build/Obj/Mac/arm/Release/Service.o Build/Obj/Mac/arm/Release/ServiceC.o Build/Obj/Mac/arm/Release/sha1.o Build/Obj/Mac/arm/Release/Ssdp.o Build/Obj/Mac/arm/Release/SsdpDv.o Build/Obj/Mac/arm/Release/Stack.o Build/Obj/Mac/arm/Release/Stream.o Build/Obj/Mac/arm/Release/Subscription.o Build/Obj/Mac/arm/Release/Thread.o Build/Obj/Mac/arm/Release/Timer.o Build/Obj/Mac/arm/Release/Uri.o Build/Obj/Mac/arm/Release/XmlParser.o Build/Obj/Mac/arm/Release/XmlFetcher.o Build/Obj/Mac/arm/Release/OhNet.o Build/Obj/Mac/arm/Release/OhNetCp.o Build/Obj/Mac/arm/Release/OhNetDv.o Build/Obj/Mac/arm/Release/OhNetCombined.o Build/Obj/Mac/arm/Release/OhNetC.o Build/Obj/Mac/arm/Release/OhNetCCp.o Build/Obj/Mac/arm/Release/OhNetCDv.o Build/Obj/Mac/arm/Release/OhNetCCombined.o Build/Obj/Mac/arm/Release/OsWrapper.o Build/Obj/Mac/arm/Release/Os.o 
llvm-g++-4.2: error trying to exec '/usr/bin/../llvm-gcc-4.2/bin/arm-apple-darwin11-llvm-g++-4.2': execvp: No such file or directory
make: *** [ohNetDll] Error 255

لا أستطيع أن أفهم لماذا تريد عملية الإنشاء إنشاء ohNetDll لهذا النظام الأساسي ، ولا كيفية إلغاء الاشتراك من هذا القسم/الهدف. المكتبات الديناميكية غير مدعومة لتطبيقات iOS وبالتأكيد ليست dlls الأصلية في Windows.

إذا كنت قد بنيت/استعملت/استعملت ohNet على نظام iOS ، فيرجى تقديم المشورة لك كيف تفعل ذلك؟ أردت نشر هذا السؤال على منتدى ohNet ، لكنني غير قادر على التسجيل (لأنني لم أرسل سؤالًا أمنيًا حتى وإن لم يكن هناك أي مكان للقيام بذلك في النموذج!).

المصدر والوثائق ودليل واجهة برمجة التطبيقات (API) كلها تبدو واعدة للغاية بالنسبة لـ ohNet ، لذلك آمل أن تتمكن من تقديم المشورة ...

0

1 إجابة

"بعد تحرير بعض مسارات $ DEVROOT و $ SDKROOT ، يمكنني ترجمة   العديد من المصادر ... "

بالنسبة إلى النظام الأساسي لـ iPhoneOS ، اضبط متغيرات البيئة التالية.

export ROOTDIR="/Applications/Xcode.app/Contents/Developer"
export PLATFORM="iPhoneOS"
export MAX_VERSION="5.1"
export DEVROOT=${ROOTDIR}/Platforms/${PLATFORM}.platform/Developer
export SDKROOT=${DEVROOT}/SDKs/${PLATFORM}${MAX_VERSION}.sdk

بعد ذلك ، في الدليل الجذر للمصدر ، في الملف "Makefile" ، حدد القسم التالي وتأكد من أنه يماثل هذا المقطع:

ifeq ($(MACHINE), Darwin)
ifeq ($(mac-arm),1)
    # Darwin, ARM -> iOS
    platform ?= iOS
    linkopts_ohNet =    
    devroot=$(DEVROOT)
    sdkroot=$(SDKROOT)
    platform_cflags = -I$(sdkroot)/usr/lib/gcc/arm-apple-darwin10/4.2.1/include/ -I$(sdkroot)/usr/include/ -I/usr/bin/arm-apple-darwin10-gcc -miphoneos-version-min=2.2 -pipe -no-cpp-precomp -isysroot $(sdkroot) -DPLATFORM_MACOSX_GNU -DPLATFORM_IOS -I$(sdkroot)/usr/include/c++/4.2.1/armv6-apple-darwin10/ 
    # It seems a bit weird that iOS uses a sub-dir of Build/Obj/Mac, is that deliberate? --AW
    osbuilddir = Mac/arm
    objdir = Build/Obj/Mac/arm/$(build_dir)/
    platform_linkflags = -L$(sdkroot)/usr/lib/ -arch armv7  -L$(sdkroot)/usr/lib/system
    compiler = $(devroot)/usr/bin/llvm-gcc-4.2  -arch armv7 -isysroot $(SDKROOT) -o $(objdir)
    # No support for linking Shared Objects for ARM MAC
    # link = $(devroot)/usr/bin/llvm-gcc-4.2  -pthread -Wl $(platform_linkflags)
    ar = $(devroot)/usr/bin/ar rc $(objdir)
    native_only = yes

النقاط الرئيسية هنا هي:

  1. الإصداران $ DEVROOT و $ SDKROOT صحيحان لإصدار iOS SDK الخاص بك.
  2. تم تعيين المتغير $ native_only على نعم. هذا يتجنب الخطأ والخروج المبكر عند إجراء محاولات (وفشل حتمًا) لإنشاء ohNetDll على جهاز مضيف Mac.

ثم ، في الطرفية ، في الدليل الجذر المصدر (أي التي تحتوي على Makefile) اكتب:

make mac-arm=1

أتمنى أن يساعدك هذا...

دوغ

0
وأضاف