การใช้ J2ObjC กับยี่ห้อ
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
นี่คือ Makefile แบบง่ายๆ ที่สาธิตการสร้างด้วย j2objc และ j2objcc:
.SUFFIXES: .java .m
BUILD_DIR = build
SOURCE_DIR = src
# Change to where distribution was unzipped.
J2OBJC_DISTRIBUTION = /your/distribution/dir
J2OBJC = $(J2OBJC_DISTRIBUTION)/j2objc
J2OBJCC = $(J2OBJC_DISTRIBUTION)/j2objcc
OBJECTS = \
$(BUILD_DIR)/foo/MainClass.o \
$(BUILD_DIR)/foo/bar/Support.o \
$(BUILD_DIR)/foo/bar/Utils.o
OBJC_SOURCES = $(OBJECTS:.o=.m)
RESULT = mainclass
default: translate $(OBJECTS)
$(J2OBJCC) -o $(RESULT) $(OBJECTS)
translate: $(BUILD_DIR) $(OBJC_SOURCES)
clean:
@rm -rf $(RESULT) $(BUILD_DIR)
$(BUILD_DIR)/%.m $(BUILD_DIR)/%.h: $(SOURCE_DIR)/%.java
$(J2OBJC) -sourcepath $(SOURCE_DIR) -d $(BUILD_DIR) $?
$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.m
$(J2OBJCC) -I$(BUILD_DIR) -c $? -o $@
$(BUILD_DIR):
@mkdir $(BUILD_DIR)
วิธีนี้ได้ผล แต่การแปลจะช้าเนื่องจากมีการแปลไฟล์ต้นฉบับแต่ละไฟล์แยกกัน
เช่นเดียวกับ Javac การแปลไฟล์ที่เกี่ยวข้องทั้งหมดพร้อมกันจะเร็วกว่า เนื่องจากมีการแยกวิเคราะห์
ต้องดำเนินการกับแหล่งข้อมูลเพียงครั้งเดียวเท่านั้น การเปลี่ยนแปลงต่อไปนี้ช่วยปรับปรุงเวลาของบิลด์ได้อย่างมาก
JAVA_SOURCES = $(TMPDIR).sources.list
translate: pre_translate $(OBJC_SOURCES)
@if [ `cat $(JAVA_SOURCES) | wc -l` -ge 1 ] ; then \
$(J2OBJC) -sourcepath $(SOURCE_DIR) -d $(BUILD_DIR) \
`cat $(JAVA_SOURCES)` ; \
fi
pre_translate: $(BUILD_DIR)
@rm -f $(JAVA_SOURCES)
@touch $(JAVA_SOURCES)
$(BUILD_DIR)/%.m $(BUILD_DIR)/%.h: $(SOURCE_DIR)/%.java
@echo $? >> $(JAVA_SOURCES)
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-25 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-25 UTC"],[[["\u003cp\u003eThis Makefile utilizes j2objc and j2objcc to translate Java source code into Objective-C for building iOS applications.\u003c/p\u003e\n"],["\u003cp\u003eInitially, translation is slow due to individual file processing, leading to redundant parsing.\u003c/p\u003e\n"],["\u003cp\u003eOptimization is achieved by translating all related files together, significantly improving build time.\u003c/p\u003e\n"],["\u003cp\u003eThe Makefile includes rules for generating object files, linking them, and cleaning the build directory.\u003c/p\u003e\n"],["\u003cp\u003eThe second Makefile example uses a temporary file to collect all java sources to be compiled together by j2objc to speed up the process.\u003c/p\u003e\n"]]],[],null,[]]