Najpierw pobierz źródło ją utwórz.
Aby przetłumaczyć plik źródłowy w Javie (np. 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
Aby skompilować przetłumaczony plik:
j2objcc -c Hello.m
j2objcc to skrypt kodu, który wywołuje kompilator C. (normalnie clang, znany również jako LLVM, program Apple C/C++/Objective-C) kompilator). Aby utworzyć plik wykonywalny:
j2objcc -o hello Hello.o
./hello Hello
hello, world
j2objcc przekazuje opcje, które określisz dla kompilatora Objective-C.
Aby np. tłumaczyć i kompilować z użyciem symboli debugowania, użyj flagi -g
:
j2objcc -g -o hello Hello.m
Najczęstsze pytania
Po uruchomieniu usługi j2objcc
wyświetla się komunikat, że „Foundation/Foundation.h” nie można znaleźć.
Jeśli kompilacja się nie uda, ponieważ nie znaleziono elementu Foundation/Foundation.h, problem że nie znaleziono pakietu SDK na iOS (tam znajduje się ten nagłówek).
- Upewnij się, że masz zainstalowany Xcode.
- Zainstaluj narzędzia wiersza poleceń, uruchamiając
xcode-select --install
. - Uruchom
xcodebuild -showsdks
, który powinien pokazywać co najmniej 1 pakiet SDK dla OS X, iOS oraz symulatora iOS. - Jeśli to nie pomoże, usuń aplikację Xcode i przejdź do kroku 1.
Jakie flagi podejmuje j2objcc
?
Skrypt j2objcc
to tylko otoka kompilatora Objective-C – clang.
Uruchom man cc
lub man clang
, aby wyświetlić listę opcji.
Podczas kompilowania za pomocą funkcji j2objcc
nie można znaleźć plików nagłówka (.h) mojego projektu.
Kompilator musi znać katalog, w którym znajdują się przetłumaczone pliki,
za pomocą funkcji -I <directory>
. Jeśli pliki zostały wygenerowane za pomocą
j2objc -d foo/bar ...
,
polecenie j2objcc
wymaga -Ifoo/bar
. Jeśli żaden katalog wyjściowy nie był
określonych w poleceniu j2objc
, musisz dodać -I.
.
Jak uruchomić w systemie Windows lub Linux?
J2ObjC to narzędzie dla iOS przeznaczone do programowania w systemie Mac OS X. Nie możesz skompilować przetłumaczony kod, ponieważ wymaga pakietu SDK dla systemu OS X lub iOS firmy Apple, wymaga, aby jego pakiety SDK były używane wyłącznie na komputerach Mac.
Ponieważ jednak tłumacz J2ObjC jest w języku Java, tłumaczenie można wykonać na
z innymi systemami. W Linuksie skrypt j2objc
powinien działać bez zmian. Okna
wymaga CygWin lub wywołania Javy
bezpośrednio. Aby wywołać tłumacza bez skryptu j2objc, użyj metody
poniżej, gdzie J2OBJC_DIR
to katalog, w którym
Rozpakowano plik dystrybucji J2ObjC:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]