শুরু হচ্ছে

প্রথম, হয়:

একটি জাভা সোর্স ফাইল অনুবাদ করতে (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/C++/Objective-C কম্পাইলার ) আহ্বান করে। এক্সিকিউটেবল তৈরি করতে:

j2objcc -o hello Hello.o
./hello Hello
hello, world

j2objcc আপনি অবজেক্টিভ-সি কম্পাইলারের জন্য যে বিকল্পগুলি নির্দিষ্ট করেন তা ফরোয়ার্ড করে। উদাহরণস্বরূপ, ডিবাগিং চিহ্নের সাথে অনুবাদ এবং নির্মাণ করতে, -g পতাকা ব্যবহার করুন:

j2objcc -g -o hello Hello.m

সচরাচর জিজ্ঞাস্য

যখন আমি j2objcc চালাই, তখন এটি অভিযোগ করে যে "Foundation/Foundation.h" পাওয়া যায়নি।

যদি সংকলন ব্যর্থ হয় কারণ Foundation/Foundation.h খুঁজে পাওয়া যায় না, সমস্যাটি হল iOS SDK খুঁজে পাওয়া যায়নি (সেখানেই সেই শিরোনামটি)।

  1. নিশ্চিত করুন যে আপনি Xcode ইনস্টল করেছেন।
  2. xcode-select --install চালিয়ে কমান্ড লাইন টুল ইনস্টল করুন।
  3. xcodebuild -showsdks চালান, যা OS X, iOS এবং iOS সিমুলেটরের জন্য অন্তত একটি SDK দেখাতে হবে।
  4. যদি এটি ব্যর্থ হয়, Xcode অ্যাপ্লিকেশন মুছুন এবং ধাপ 1 এ যান।

j2objcc কি পতাকা নেয়?

j2objcc স্ক্রিপ্টটি অবজেক্টিভ-সি কম্পাইলারের চারপাশে একটি মোড়ক, ক্ল্যাং। man cc চালান বা man clang এর বিকল্পগুলি তালিকাভুক্ত করতে।

j2objcc দিয়ে কম্পাইল করার সময়, আমার প্রোজেক্টের হেডার (.h) ফাইল পাওয়া যাবে না।

-I <directory> ব্যবহার করে কম্পাইলারকে সেই ডিরেক্টরিটি জানতে হবে যেখানে অনুবাদ করা ফাইলগুলি থাকে। সুতরাং যদি ফাইলগুলি j2objc -d foo/bar ... দিয়ে তৈরি করা হয়, তাহলে j2objcc কমান্ডের প্রয়োজন -Ifoo/bar । যদি j2objc কমান্ডে কোনো আউটপুট ডিরেক্টরি নির্দিষ্ট করা না থাকে, তাহলে -I. যোগ করা প্রয়োজন।

আমি কিভাবে উইন্ডোজ বা লিনাক্স চালাব?

J2ObjC হল একটি iOS টুল যা Mac OS X-এ ডেভেলপমেন্টের জন্য৷ আপনি কোনো অনুবাদিত কোড কম্পাইল করতে পারবেন না কারণ এটির জন্য Apple থেকে একটি OS X বা iOS SDK প্রয়োজন, যার জন্য প্রয়োজন এর SDKগুলি শুধুমাত্র Mac এ ব্যবহার করা৷

যাইহোক, যেহেতু J2ObjC অনুবাদকটি বিশুদ্ধ-জাভা, তাই অনুবাদ অন্যান্য সিস্টেমে করা যেতে পারে। লিনাক্সে, j2objc স্ক্রিপ্ট অপরিবর্তিত কাজ করা উচিত। উইন্ডোজ ব্যবহারের জন্য হয় CygWin , অথবা সরাসরি Java ব্যবহার করা প্রয়োজন। J2objc স্ক্রিপ্ট ছাড়া অনুবাদককে আমন্ত্রণ জানাতে, নিম্নলিখিতটি ব্যবহার করুন যেখানে J2OBJC_DIR একটি ডিরেক্টরি যেখানে J2ObjC বিতরণ ফাইলটি আনজিপ করা হয়েছিল:

java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]