पहला, इनमें से कोई एक:
- रिलीज़ सेक्शन से मौजूदा डिस्ट्रिब्यूशन डाउनलोड करें और उसे अनज़िप करें या
- सोर्स पाएं और उसे बनाएं.
Java सोर्स फ़ाइल का अनुवाद करने के लिए (उदाहरण के लिए, Hello.java रखें):
public class Hello {
public static void main(String[] args) {
System.out.println("hello, world");
}
}
j2objc Hello.java
translating Hello.java Translated 1 file: 0 errors, 0 warnings
अनुवाद की गई फ़ाइल को कंपाइल करने के लिए:
j2objcc -c Hello.m
j2objcc एक रैपर स्क्रिप्ट है, जो आपके C कंपाइलर को शुरू करती है. आम तौर पर, इसे clang, यानी LLVM कहते हैं. Apple का C/C++/Objective-C कंपिलर). एक्ज़ीक्यूटेबल बनाने के लिए:
j2objcc -o hello Hello.o
./hello Hello
hello, world
j2objcc, ऑब्जेक्टिव-सी कंपाइलर के लिए आपके तय किए गए विकल्पों को फ़ॉरवर्ड करता है.
उदाहरण के लिए, डीबग करने के सिंबल का इस्तेमाल करके अनुवाद करने और उसे बनाने के लिए, -g
फ़्लैग का इस्तेमाल करें:
j2objcc -g -o hello Hello.m
अक्सर पूछे जाने वाले सवाल
j2objcc
चलाने पर, यह शिकायत करता है कि "फ़ाउंडेशन/फ़ाउंडेशन.h" नहीं मिला.
अगर Foundation/Foundation.h नहीं मिलने की वजह से कंपाइलेशन नहीं हो पाता, तो समस्या यह है कि iOS SDK नहीं मिला (जहां वह हेडर है).
- पक्का करें कि आपने Xcode इंस्टॉल किया हो.
xcode-select --install
चलाकर कमांड लाइन टूल इंस्टॉल करें.xcodebuild -showsdks
चलाएं, जो OS X, iOS, और iOS सिम्युलेटर के लिए कम से कम एक SDK टूल दिखाए.- अगर इससे काम नहीं बनता, तो Xcode ऐप्लिकेशन को मिटाएं और पहले चरण पर जाएं.
j2objcc
के पास कौनसे फ़्लैग हैं?
j2objcc
स्क्रिप्ट, ऑब्जेक्टिव-सी कंपाइलर, क्लैग के आस-पास एक रैपर है.
इसके विकल्पों की सूची बनाने के लिए, man cc
या man clang
चलाएं.
j2objcc
के साथ कंपाइल करते समय, मेरे प्रोजेक्ट की हेडर (.h) फ़ाइलें नहीं मिलीं.
-I <directory>
का इस्तेमाल करके, कंपाइलर को उस डायरेक्ट्री की जानकारी होनी चाहिए जहां अनुवाद की गई फ़ाइलें मौजूद हैं. इसलिए, अगर फ़ाइलें j2objc -d foo/bar ...
की मदद से जनरेट की गई हैं,
तो j2objcc
कमांड के लिए -Ifoo/bar
की ज़रूरत होगी. अगर j2objc
कमांड में कोई आउटपुट डायरेक्ट्री
नहीं दी गई है, तो -I.
को जोड़ना होगा.
मैं Windows या Linux पर कैसे चलाऊं?
J2ObjC एक iOS टूल है, जिसे Mac OS X पर डेवलपमेंट के लिए बनाया गया है. कोई भी अनुवाद किया गया कोड कंपाइल नहीं किया जा सकता, क्योंकि इसके लिए Apple का OS X या iOS SDK होना ज़रूरी है, जिसके SDK टूल का इस्तेमाल सिर्फ़ Mac पर किया जाना चाहिए.
हालांकि, J2ObjC अनुवादक शुद्ध-Java है, इसलिए अन्य सिस्टम पर अनुवाद किया जा सकता है. Linux पर, j2objc
स्क्रिप्ट में कोई बदलाव नहीं होना चाहिए. Windows
का इस्तेमाल करने के लिए, या तो CygWin को या सीधे तौर पर Java
इस्तेमाल करने की ज़रूरत होती है. j2objc स्क्रिप्ट के बिना अनुवादक शुरू करने के लिए, यहां दी गई फ़ाइल का इस्तेमाल करें, जहां J2OBJC_DIR
वह डायरेक्ट्री है जहां
J2ObjC डिस्ट्रिब्यूशन फ़ाइल को अनज़िप किया गया था:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]