angielskifrancuskiniemieckiwłoskiportugalskirosyjskihiszpański

Ulubiona usługa OnWorks

mips64-linux-gnuabi64-gcj - Online w chmurze

Uruchom mips64-linux-gnuabi64-gcj u dostawcy bezpłatnego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie mips64-linux-gnuabi64-gcj, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu Mac OS

PROGRAM:

IMIĘ


gcj - kompilator wyprzedzający dla języka Java

STRESZCZENIE


gcj [-Ireż...] [-d reż...]
[-- ŚCIEŻKA KLASY=ścieżka] [--ścieżka klasy=ścieżka]
[-fopcja...] [--kodowanie=Nazwa]
[--Główny=Nazwa klasy] [-DNazwa[=wartość]...]
[-C] [--ratunek Nazwa zasobu] [-d katalog]
[-Wostrzec...]
Plik źródłowy...

OPIS


As gcj to tylko kolejny frontend do gcc, obsługuje wiele takich samych opcji jak gcc.
Niniejsza instrukcja dokumentuje tylko opcje specyficzne dla gcj.

OPCJE


Wkład dzięki wydajność akta
A gcj polecenie jest jak a gcc polecenie, ponieważ składa się z wielu opcji i pliku
nazwy. Obsługiwane są następujące rodzaje nazw plików wejściowych:

filet.Jawa
Pliki źródłowe Java.

filet.klasa
Pliki kodu bajtowego Java.

filet.zamek błyskawiczny
filet.jar
Archiwum zawierające jeden lub więcej plików „.class”, z których wszystkie są skompilowane. ten
archiwum może być skompresowane. Pliki w archiwum, które nie kończą się na .klasa
traktowane jako pliki zasobów; są one kompilowane do wynikowego pliku obiektowego jako rdzeń:
Adresów URL.

@filet
Plik zawierający rozdzieloną spacjami listę nazw plików wejściowych. (Obecnie te
wszystkie muszą być plikami źródłowymi „.java”, ale to może się zmienić.) Każdy nazwany plik jest kompilowany,
tak, jakby był w wierszu poleceń.

biblioteka.a
biblioteka.so
-lnazwa_biblioteki
Biblioteki używane podczas łączenia. Zobacz gcc – instrukcja obsługi.

Możesz określić więcej niż jeden plik wejściowy na gcj wiersz poleceń, w takim przypadku będą
wszystko skompilowane. Jeśli podasz "-o NAZWA PLIKU" opcja, wszystkie pliki wejściowe będą
skompilowane razem, tworząc pojedynczy plik wyjściowy o nazwie NAZWA PLIKU. Jest to dozwolone nawet
przy użyciu „-S” lub „-c”, ale nie przy użyciu „-C” lub „--resource”. (To jest rozszerzenie
poza tym, co proste gcc zezwala.) (Jeśli podano więcej niż jeden plik wejściowy, wszystkie muszą
obecnie są to pliki „.java”, chociaż mamy nadzieję to naprawić.)

Wkład Opcje
gcj ma opcje do kontrolowania, gdzie szuka plików, których potrzebuje. Na przykład, gcj może
trzeba załadować klasę, do której odwołuje się plik, który został poproszony o skompilowanie. Lubić
inne kompilatory dla języka Java, gcj ma pojęcie o klasa ścieżka. Tam są
kilka opcji i zmiennych środowiskowych, których można użyć do manipulowania ścieżką klasy.
Gdy gcj szuka danej klasy, przeszukuje ścieżkę klasy w poszukiwaniu dopasowania .klasa
or .Jawa plik. gcj ma wbudowaną ścieżkę klasy, która wskazuje na zainstalowaną
libgcj.jar, plik zawierający wszystkie standardowe klasy.

W poniższym tekście komponent katalogu lub ścieżki może odnosić się do aktualnego katalogu
w systemie plików lub do .zamek błyskawiczny or .jar plik, który gcj będzie szukać tak, jakby to był
katalogiem.

-Ireż
Wszystkie katalogi określone przez "-I" są utrzymywane w porządku i dodawane do ścieżki klasy
zbudowany ze wszystkich innych opcji. Chyba że kompatybilność z narzędziami takimi jak „javac”
jest ważne, zalecamy zawsze używać „-I” zamiast innych opcji dla
manipulowanie ścieżką klasy.

--classpath=ścieżka
Ustawia to ścieżkę klasy na ścieżka, lista ścieżek oddzielonych dwukropkami (w systemie Windows
systemów, listę ścieżek oddzielonych średnikami). To nie zastępuje wbudowanego
("boot") ścieżka wyszukiwania.

--Ścieżka KLASY=ścieżka
Nieaktualny synonim wyrażenia „--classpath”.

--bootclasspath=ścieżka
Gdzie znaleźć standardowe klasy wbudowane, takie jak „java.lang.String”.

--extdirs=ścieżka
Dla każdego katalogu w ścieżka, umieść zawartość tego katalogu na końcu
ścieżka klasy.

ŚCIEŻKA KLASY
To jest zmienna środowiskowa, która przechowuje listę ścieżek.

Ostateczna ścieżka klasy jest skonstruowana w następujący sposób:

* Najpierw są wszystkie katalogi określone przez "-I".

* Gdyby --ścieżka klasy jest określony, jego wartość jest dodawana. W przeciwnym razie, jeśli „CLASSPATH”
określona jest zmienna środowiskowa, a następnie dodawana jest jej wartość. W przeciwnym razie prąd
katalog (".") jest dołączany.

* Jeśli określono "--bootclasspath", dołącz jego wartość. W przeciwnym razie dołącz wbudowane
katalog systemowy, libgcj.jar.

* Na koniec, jeśli podano "--extdirs", dołącz zawartość określonego
katalogi na końcu ścieżki klasy. W przeciwnym razie dołącz zawartość
wbudowane katalogi zewnętrzne w „$(prefix)/share/java/ext”.

Plik klas zbudowany przez gcj dla klasy „java.lang.Object” (i umieszczonej w „libgcj.jar”)
zawiera specjalny atrybut o zerowej długości „gnu.gcj.gcj-compiled”. Kompilator szuka
ten atrybut podczas ładowania "java.lang.Object" i zgłosi błąd, jeśli nie zostanie znaleziony,
chyba że skompiluje się do kodu bajtowego (opcja "-fforce-classes-archive-check" może być użyta do
zastąpić to zachowanie w tym konkretnym przypadku).

-fforce-classes-archiwum-sprawdzanie
Zmusza to kompilator, aby zawsze sprawdzał, czy nie ma specjalnego atrybutu o zerowej długości
„gnu.gcj.gcj-compiled” w „java.lang.Object” i wyślij błąd, jeśli nie zostanie znaleziony.

-fsource=WERSJA
Ta opcja służy do wyboru wersji źródłowej akceptowanej przez gcj, Wartość domyślna to 1.5.

Kodowanie
Język programowania Java używa Unicode w całym tekście. W celu dobrej integracji
z innymi lokalizacjami, gcj pozwala .Jawa pliki do zapisania przy użyciu prawie dowolnego kodowania. gcj
wie, jak przekonwertować te kodowania na ich wewnętrzne kodowanie w czasie kompilacji.

Możesz użyć "--encoding=NAZWA" możliwość określenia kodowania (określonego znaku)
set) do użycia dla plików źródłowych. Jeśli nie jest to określone, domyślne kodowanie pochodzi z
Twój obecny język. Jeśli twój system hosta ma niewystarczającą obsługę lokalizacji, to gcj
zakłada, że ​​domyślne kodowanie to UTF-8 kodowanie Unicode.

Aby zaimplementować „--kodowanie”, gcj po prostu używa procedury konwersji „iconv” platformy hosta.
Oznacza to, że w praktyce gcj jest ograniczona możliwościami platformy hosta.

Nazwy dozwolone dla argumentu „--encoding” różnią się w zależności od platformy (ponieważ
nie są nigdzie ustandaryzowane). Jednakże, gcj implementuje kodowanie nazwane UTF-8
wewnętrznie, więc jeśli zdecydujesz się użyć tego dla swoich plików źródłowych, możesz mieć pewność, że:
będzie działać na każdym hoście.

ostrzeżenia
gcj wprowadza kilka ostrzeżeń. Podobnie jak w przypadku innych generycznych gcc ostrzeżenia, jeśli opcja
forma "-Wfoo" włącza ostrzeżenie, a "-Wno-foo" wyłącza je. Tutaj zdecydowaliśmy się
udokumentuj formę ostrzeżenia, które będzie miało skutek – domyślnie jest to
przeciwieństwo tego, co jest wymienione.

-Zbędne-modyfikatory
Z tą flagą gcj ostrzeże o zbędnych modyfikatorach. Na przykład ostrzeże
jeśli metoda interfejsu jest zadeklarowana jako „publiczna”.

-Wextrane-średnik
To powoduje gcj ostrzegać o pustych oświadczeniach. Puste oświadczenia zostały
przestarzałe.

-Wno-nieaktualny
Ta opcja spowoduje gcj nie ostrzegać, gdy plik źródłowy jest nowszy niż pasujący
plik klasy. Domyślnie gcj ostrzeże o tym.

-Wno-przestarzałe
Ostrzegaj w przypadku odniesienia do przestarzałej klasy, metody lub pola.

-Wunused
To to samo co gcc„-Wunused”.

-Ściana
To to samo, co „-Wredundant-modifiers -Wextraneous-średnik -Wunused”.

Łączenie
Aby zmienić aplikację Java w program wykonywalny, musisz połączyć ją z potrzebnymi
biblioteki, tak jak dla C lub C++. Linker domyślnie szuka globalnej funkcji o nazwie
"Główny". Ponieważ Java nie posiada funkcji globalnych, a zbiór klas Javy może:
mieć więcej niż jedną klasę z metodą "główną", musisz poinformować linkera, która z
te "główne" metody, które powinien wywołać podczas uruchamiania aplikacji. Możesz to zrobić w
dowolny z tych sposobów:

* Określ klasę zawierającą żądaną "główną" metodę podczas łączenia aplikacji,
za pomocą flagi "--main", opisanej poniżej.

* Połącz pakiet(y) Java ze współdzieloną biblioteką (dll), a nie z plikiem wykonywalnym. Następnie
wywołaj aplikację za pomocą programu „gij”, upewniając się, że „gij” może znaleźć
biblioteki, których potrzebuje.

* Połącz pakiety Java z flagą "-lgij", która łączy się w procedurze "main"
z polecenia „gij”. Pozwala to wybrać klasę, której „główną” metodę ty
chcesz uruchomić po uruchomieniu aplikacji. Możesz także użyć innych flag „gij”, takich jak
Flagi "-D" do ustawiania właściwości. Korzystanie z biblioteki "-lgij" (zamiast "gij"
programu poprzedniego mechanizmu) ma pewne zalety: jest kompatybilny ze statycznym
łączenie i nie wymaga konfigurowania ani instalowania bibliotek.

Te opcje „gij” dotyczą łączenia pliku wykonywalnego:

--main=NAZWA KLASY
Ta opcja jest używana podczas łączenia w celu określenia nazwy klasy, której "główna" metoda
powinien być wywoływany podczas uruchamiania wynikowego pliku wykonywalnego.

-DNazwa[=wartość]
Ta opcja może być używana tylko z "--main". Definiuje właściwość systemową o nazwie Nazwa
z wartością wartość. Jeśli wartość nie jest określony, to domyślnie jest to pusty ciąg.
Te właściwości systemowe są inicjowane podczas uruchamiania programu i można je pobrać
w czasie wykonywania przy użyciu metody „java.lang.System.getProperty”.

-lgij
Utwórz aplikację, której przetwarzanie w wierszu poleceń jest takie, jak w poleceniu „gij”.

Ta opcja jest alternatywą dla używania "--main"; nie możesz używać obu.

-static-libgcj
Ta opcja powoduje, że linkowanie jest wykonywane ze statyczną wersją środowiska wykonawczego libgcj
Biblioteka. Ta opcja jest dostępna tylko wtedy, gdy istnieje odpowiednia obsługa konsolidatora.

Ostrzeżenie: Łączenie statyczne libgcj może spowodować pominięcie istotnych części libgcj.
Niektóre części libgcj używają odbicia do ładowania klas w czasie wykonywania. Ponieważ linker nie
nie widzi tych odwołań w czasie linkowania, może pominąć klasy, do których się odwołuje. ten
wynikiem jest zwykle (ale nie zawsze) wyjątek „ClassNotFoundException” w czasie wykonywania.
Podczas korzystania z tej opcji należy zachować ostrożność. Więcej szczegółów znajdziesz na:
<http://gcc.gnu.org/wiki/Statically%20linkowanie%20libgcj>

Kod Pokolenie
Oprócz wielu gcc opcje sterujące generowaniem kodu, gcj ma kilka opcji
specyficzne dla siebie.

-C Ta opcja służy do informowania gcj do wygenerowania kodu bajtowego (.klasa pliki) zamiast sprzeciwu
kod.

--ratunek Nazwa zasobu
Ta opcja służy do informowania gcj skompilować zawartość danego pliku do kodu wynikowego
więc można uzyskać do niego dostęp w czasie wykonywania za pomocą podstawowego programu obsługi protokołu jako rdzeń:/ratunek-
Nazwa, Należy pamiętać, że Nazwa zasobu to nazwa zasobu znaleziona w czasie wykonywania; dla
na przykład może być użyty w wywołaniu „ResourceBundle.getBundle”. Rzeczywisty plik
nazwa, która ma zostać skompilowana w ten sposób, musi być określona osobno.

-ftarget=WERSJA
Może być używany z -C aby wybrać wersję kodu bajtowego emitowanego przez gcj,
wartość domyślna to 1.5. Ta opcja nie działa, gdy nie generuje kodu bajtowego.

-d katalog
W przypadku użycia z „-C” powoduje to, że wszystkie wygenerowane .klasa pliki do umieszczenia w
odpowiedni podkatalog katalog. Domyślnie zostaną umieszczone w podkatalogach
bieżącego katalogu roboczego.

-fno-bounds-check
Domyślnie gcj generuje kod, który sprawdza granice całego indeksowania tablicy
operacje. Dzięki tej opcji te sprawdzenia są pomijane, co może poprawić wydajność
dla kodu, który intensywnie używa tablic. Pamiętaj, że może to spowodować nieprzewidywalne
zachowanie, jeśli dany kod faktycznie narusza ograniczenia dotyczące granic tablicy. Ono
można bezpiecznie użyć tej opcji, jeśli masz pewność, że Twój kod nigdy nie wyrzuci
„ArrayIndexOutOfBoundsException”.

-fno-store-check
Nie generuj kontroli magazynu tablic. Podczas przechowywania obiektów w tablicach sprawdzanie w czasie wykonywania
jest zwykle generowany w celu zapewnienia, że ​​obiekt jest zgodny z przypisaniem
typ składnika tablicy (który może nie być znany w czasie kompilacji). Z tym
opcji, te sprawdzenia są pomijane. Może to poprawić wydajność kodu, który przechowuje
obiekty często w tablice. Korzystanie z tej opcji jest bezpieczne, jeśli masz pewność, że
kod nigdy nie zgłosi „ArrayStoreException”.

-fjni
Z gcj istnieją dwie opcje pisania metod natywnych: CNI i JNI. Domyślnie
gcj zakłada, że ​​używasz CNI. Jeśli kompilujesz klasę za pomocą metod natywnych i
te metody są zaimplementowane przy użyciu JNI, musisz użyć "-fjni". Ta opcja
Przyczyny gcj do generowania kodów pośredniczących, które będą wywoływać podstawowe metody JNI.

-fno-asert
Nie rozpoznaj słowa kluczowego „asert”. Ma to na celu zgodność ze starszymi wersjami
specyfikacji języka.

-fno-optimize-static-class-initialization
Gdy poziom optymalizacji jest większy lub równy „-O2”, gcj spróbuje zoptymalizować
sposób, w jaki wykonywane są wywołania do środowiska wykonawczego w celu zainicjowania klas statycznych przy ich pierwszym użyciu
(ta optymalizacja nie jest przeprowadzana, jeśli podano "-C".) Podczas kompilacji do natywnego
kod, "-fno-optimize-static-class-initialization" wyłączy tę optymalizację,
niezależnie od używanego poziomu optymalizacji.

--wyłącz-zaświadczenia[=klasa-lub-pakiet]
Nie dołączaj kodu do sprawdzania asercji w skompilowanym kodzie. Gdyby
"=klasa-lub-pakiet" brak wyłącza generowanie kodu asercji dla wszystkich klas,
chyba że zostanie zastąpiony przez bardziej szczegółową flagę „--enable-assertions”. Gdyby klasa-lub-pakiet
jest nazwą klasy, wyłącza tylko generowanie sprawdzania asercji w nazwanej klasie lub
jego wewnętrzne klasy. Gdyby klasa-lub-pakiet to nazwa pakietu, wyłącza generowanie
sprawdza asercję w nazwanym pakiecie lub podpakietu.

Domyślnie asercje są włączone podczas generowania plików klas lub bez optymalizacji,
i wyłączone podczas generowania zoptymalizowanych plików binarnych.

--enable-zaświadczenia[=klasa-lub-pakiet]
Generuje kod w celu sprawdzenia potwierdzeń. Ta opcja jest prawdopodobnie niewłaściwie nazwana, ponieważ nadal potrzebujesz
włączyć sprawdzanie asercji w czasie wykonywania, a nie obsługujemy żadnych łatwych sposobów
że. Więc ta flaga nie jest jeszcze zbyt użyteczna, z wyjątkiem częściowego nadpisania
„--wyłącz-zaświadczenia”.

-bezpośrednia-wysyłka
gcj ma specjalną kompatybilność binarną ABI, która jest włączona przez
opcja "-findirect-dispatch". W tym trybie kod wygenerowany przez gcj honoruje
Gwarancje zgodności binarnej w specyfikacji języka Java, a wynikające z nich
pliki obiektowe nie muszą być bezpośrednio połączone z ich zależnościami. Zamiast,
wszystkie zależności są sprawdzane w czasie wykonywania. Pozwala to na swobodne mieszanie interpretowanych i
skompilowany kod.

Zauważ, że obecnie "-findirect-dispatch" może być używany tylko podczas kompilacji .klasa
pliki. Nie będzie działać podczas kompilacji ze źródła. CNI również jeszcze nie współpracuje
zgodność binarna ABI. Te ograniczenia zostaną zniesione w przyszłości
zwolnić.

Jeśli jednak skompilujesz kod CNI ze standardowym ABI, możesz wywołać go z kodu
zbudowany z binarną kompatybilnością ABI.

-fbootstrap-classes
Ta opcja może być użyta do powiedzenia "libgcj", że skompilowane klasy powinny być ładowane przez
program ładujący program ładujący, a nie systemowy program ładujący klasy. Domyślnie, jeśli skompilujesz klasę
i połącz go z plikiem wykonywalnym, będzie traktowany tak, jakby został załadowany za pomocą
program ładujący klasy systemowe. Jest to wygodne, ponieważ oznacza to, że takie rzeczy jak
"Class.forName()" przeszuka ŚCIEŻKA KLASY znaleźć pożądaną klasę.

-uwolniona-refleksja
Ta opcja powoduje, że kod generowany przez gcj zawierać zmniejszoną ilość klasy
metadane używane do obsługi odbicia w czasie wykonywania. Kosztem tych oszczędności jest strata
możliwość wykorzystania pewnych możliwości odbicia standardowego środowiska uruchomieniowego Javy
środowisko. Po ustawieniu wszystkich metadanych z wyjątkiem tych, które są potrzebne do uzyskania poprawnych
semantyka uruchomieniowa została wyeliminowana.

Dla kodu, który nie używa odbicia (tj. serializacji, RMI, CORBA lub metod wywoływania)
w pakiecie "java.lang.reflect") "-freduced-reflection" spowoduje poprawne
działanie z oszczędnością rozmiaru kodu wykonywalnego.

JNI („-fjni”) i zgodność binarna ABI („-findirect-dispatch”) nie działają
poprawnie bez metadanych pełnego odbicia. Z tego powodu jest to błąd w użyciu
te opcje z "-swobodnym-odbiciem".

Ostrzeżenie: Jeśli nie ma metadanych odbicia, kod korzystający z „SecurityManager” może:
nie pracuje prawidłowo. Również wywołanie „Class.forName()” może się nie powieść, jeśli metoda wywołująca ma:
brak metadanych odbicia.

Konfiguruj czas Opcje
Trochę gcj Opcje generowania kodu wpływają na wynikowy ABI, więc może być tylko
w sposób znaczący podany, gdy skonfigurowany jest pakiet wykonawczy "libgcj". „libgcj” stawia
odpowiednie opcje z tej grupy do specyfikacja plik, który jest odczytywany przez gcj. Te opcje
są wymienione tutaj dla kompletności; jeśli używasz „libgcj”, nie będziesz chciał dotykać
te opcje.

-bezpiecznik-boehm-gc
Umożliwia to użycie kodu do znakowania bitmapy Boehm GC. W szczególności powoduje to
gcj umieścić deskryptor oznaczania obiektu w każdej vtable.

-synchronizacja fhash
Domyślnie dane synchronizacji (dane używane do "synchronizacji", "czekania" i
„powiadom”) jest wskazywane przez słowo w każdym obiekcie. Z tą opcją gcj zakłada, że
informacje te są przechowywane w tablicy mieszającej, a nie w samym obiekcie.

-bezpiecznik-dzielnik-podprogram
W niektórych systemach wywoływana jest procedura biblioteczna w celu wykonania dzielenia liczb całkowitych. To jest
wymagane, aby obsługa wyjątków była poprawna podczas dzielenia przez zero.

-fsprawdź referencje
W niektórych systemach konieczne jest wstawianie kontroli inline za każdym razem, gdy uzyskujesz dostęp do obiektu
za pośrednictwem referencji. W innych systemach nie będziesz tego potrzebować, ponieważ dostęp do wskaźnika zerowego
są przechwytywane automatycznie przez procesor.

-fuse-atomowe-wbudowane
W niektórych systemach GCC może generować kod dla wbudowanych operacji atomowych. Użyj tego
opcja wymuszenia na gcj użycia tych wbudowanych funkcji podczas kompilowania kodu Java. Gdzie to
funkcja jest obecna, powinna zostać automatycznie wykryta, więc zwykle nie będziesz potrzebować
aby skorzystać z tej opcji.

Użyj mips64-linux-gnuabi64-gcj online za pomocą usług onworks.net


Ad


Ad

Najnowsze programy online dla systemów Linux i Windows