2011-05-27 11 views
18

मेरे पास विरासत कोड है जो 32-bit पर पॉइंटर्स पर निर्भर करता है और command line से उस कोड को बनाने के लिए xCodeBuild का उपयोग करना चाहता है। यह किसी कारण से काम नहीं करता है। यहाँ आदेश मैं का उपयोग करें: है उत्पादन मैंमैं xcodebuild का उपयोग कर एक विशिष्ट आर्किटेक्चर कैसे बना सकता हूं?

[BEROR]No architectures to compile for 
    (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386). 

मिल

xcodebuild -configuration Debug -arch i386 
    -workspace MyProject.xcworkspace -scheme MyLib 
यहाँ

जाहिर है यह और x86_64 कोड का निर्माण करने की कोशिश कर रहा है बुरी तरह नाकाम रहने के बाद से मैं सिर्फ Xcode परियोजना सेटिंग्स में VALID_ARCHS से i386 सक्षम होना चाहिए।

क्या यह समझने का कोई तरीका है कि मुझे 64-bit लाइब्रेरी नहीं चाहिए?

उत्तर

41

यदि आप ARCHS पैरामीटर का उपयोग करने के लिए xcodebuild चाहते हैं तो आपको ONLY_ACTIVE_ARCH से NO पर सेट करना होगा। इन मानकों को पार करके, आप उचित वास्तुकला को मजबूर कर सकते हैं।

xcodebuild ARCHS=i386 ONLY_ACTIVE_ARCH=NO -configuration Debug -workspace MyProject.xcworkspace -scheme MyLib 

विवरण के लिए this reference देखें।

+3

प्रदान किए गए संदर्भ के अनुसार ONLY_ACTIVE_ARCH = YES और CURRENT_ARCH = i386 का उपयोग करना चाहिए जो मैं करना चाहता हूं, लेकिन CURRENT_ARCH (या NATIVE_ARCH जिसका अर्थ है) लेकिन स्पष्ट रूप से उन दो चरों को ओवरराइड नहीं किया जा सकता है (और कुछ भी नहीं लगता है दस्तावेज़ीकरण से सुझाव देने के लिए)। प्रस्तावित दृष्टिकोण ने काम किया (और वास्तव में यह समझ में आता है कि सक्रिय आर्क समझने के बजाय एक्सकोड में आपके द्वारा चुने गए एक के बजाय बिल्ड सिस्टम का आर्किटेक्चर है) लेकिन शायद उस परिभाषा के लिए शब्द की बेहतर पसंद में मदद मिलेगी। धन्यवाद! – pqnet

+4

आप उपयोग कर सकते हैं 'xcodebuild VALID_ARCHS = i386 CURRENT_ARCH = i386 ONLY_ACTIVE_ARCH = हाँ ....' –

+2

बस ONLY_ACTIVE_ARCH = नहीं जोड़ने मुझे –

संबंधित मुद्दे