अंग्रेज़ीफ्रेंचजर्मनइतालवीपुर्तगालीरूसीस्पेनिश

ऑनवर्क्स फ़ेविकॉन

mips-linux-gnu-gcj - क्लाउड में ऑनलाइन

उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर पर ऑनवर्क्स मुफ्त होस्टिंग प्रदाता में mips-linux-gnu-gcj चलाएं।

यह कमांड mips-linux-gnu-gcj है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर में से एक का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


gcj - जावा भाषा के लिए समय से पहले संकलक

SYNOPSIS


जीसीजे [-Iदीर...] [-d दीर...]
[--क्लासस्पैट=पथ] [--क्लासपाथ=पथ]
[-fविकल्प...] [--एन्कोडिंग=नाम]
[--मुख्य=कक्षा का नाम] [-Dनाम[=मूल्य]...]
[-C] [--संसाधन संसाधन का नाम] [-d डायरेक्टरी]
[-Wचेतावनी देना...]
मूल फाइल...

वर्णन


As जीसीजे बस एक और सामने का छोर है जीसीसी, यह gcc जैसे ही कई विकल्पों का समर्थन करता है।
यह मैनुअल केवल विशिष्ट विकल्पों का दस्तावेजीकरण करता है जीसीजे.

विकल्प


निवेश और उत्पादन फ़ाइलों
A जीसीजे कमांड a . की तरह है जीसीसी कमांड, जिसमें इसमें कई विकल्प और फ़ाइल शामिल हैं
names. निम्न प्रकार के इनपुट फ़ाइल नाम समर्थित हैं:

पट्टिकाजावा
जावा स्रोत फ़ाइलें।

पट्टिका।कक्षा
जावा बाइटकोड फ़ाइलें।

पट्टिका. ज़िप
पट्टिका. जार
एक या अधिक ".class" फ़ाइलों वाला एक संग्रह, जो सभी संकलित हैं। NS
संग्रह को संकुचित किया जा सकता है। एक संग्रह में फ़ाइलें जो समाप्त नहीं होती हैं ।कक्षा रहे
संसाधन फ़ाइलों के रूप में माना जाता है; वे परिणामी वस्तु फ़ाइल में संकलित हैं: कोर:
यूआरएल।

@पट्टिका
एक फ़ाइल जिसमें इनपुट फ़ाइल नामों की व्हॉट्सएप-पृथक सूची है। (वर्तमान में, ये
सभी ".java" स्रोत फ़ाइलें होनी चाहिए, लेकिन वह बदल सकती हैं।) प्रत्येक नामित फ़ाइल संकलित है,
जैसे कि यह कमांड लाइन पर था।

पुस्तकालय.a
पुस्तकालय.so
-lलिबनाम
लिंक करते समय उपयोग करने के लिए पुस्तकालय। देखें जीसीसी मैनुअल।

आप पर एक से अधिक इनपुट फ़ाइल निर्दिष्ट कर सकते हैं जीसीजे कमांड लाइन, जिस स्थिति में वे करेंगे
सभी संकलित हो। यदि आप एक "-o . निर्दिष्ट करते हैं फ़ाइल का नाम" विकल्प, सभी इनपुट फाइलें होंगी
एक साथ संकलित, एक एकल आउटपुट फ़ाइल का निर्माण, जिसका नाम है फ़ाइल का नाम. इसकी भी अनुमति है
"-S" या "-c" का उपयोग करते समय, लेकिन "-C" या "--resource" का उपयोग करते समय नहीं। (यह एक विस्तार है
किस मैदान से परे जीसीसी अनुमति देता है।) (यदि एक से अधिक इनपुट फ़ाइल निर्दिष्ट है, तो सभी को
वर्तमान में ".java" फ़ाइलें हैं, हालांकि हम इसे ठीक करने की आशा करते हैं।)

निवेश ऑप्शंस
जीसीजे उसके पास यह नियंत्रित करने के विकल्प हैं कि वह उन फ़ाइलों को कहाँ ढूँढ़ता है जिनकी उसे आवश्यकता है। उदाहरण के लिए, जीसीजे हो सकता है
फ़ाइल द्वारा संदर्भित एक वर्ग को लोड करने की आवश्यकता है जिसे इसे संकलित करने के लिए कहा गया है। पसंद
जावा भाषा के लिए अन्य संकलक, जीसीजे एक की धारणा है कक्षा पथ. वहाँ रहे हैं
कई विकल्प और पर्यावरण चर जिनका उपयोग वर्ग पथ में हेरफेर करने के लिए किया जा सकता है।
. जीसीजे किसी दिए गए वर्ग की तलाश करता है, यह मिलान की तलाश में वर्ग पथ की खोज करता है ।कक्षा
or जावा फ़ाइल. जीसीजे एक अंतर्निर्मित वर्ग पथ के साथ आता है जो स्थापित पर इंगित करता है
libgcj.jar, एक फ़ाइल जिसमें सभी मानक वर्ग शामिल हैं।

नीचे दिए गए पाठ में, एक निर्देशिका या पथ घटक वास्तविक निर्देशिका को संदर्भित कर सकता है
फाइल सिस्टम पर, या a . ज़िप or . जार फ़ाइल, जो जीसीजे खोजेगा जैसे कि यह एक है
निर्देशिका.

-Iदीर
"-I" द्वारा निर्दिष्ट सभी निर्देशिकाओं को क्रम में रखा जाता है और कक्षा पथ के लिए तैयार किया जाता है
अन्य सभी विकल्पों से निर्मित। जब तक "जावैक" जैसे उपकरणों के साथ संगतता न हो
महत्वपूर्ण है, हम अनुशंसा करते हैं कि अन्य विकल्पों के बजाय हमेशा "-I" का उपयोग करें
वर्ग पथ में हेरफेर।

--क्लासपाथ =पथ
यह वर्ग पथ को सेट करता है पथ, पथों की एक बृहदान्त्र-पृथक सूची (Windows-आधारित पर)
सिस्टम, पथों की एक अर्धविराम-अलग सूची)। यह बिल्टिन को ओवरराइड नहीं करता है
("बूट") खोज पथ।

--क्लासस्पैट=पथ
"--classpath" के लिए पदावनत पर्यायवाची।

--बूटक्लासपथ=पथ
"java.lang.String" जैसे मानक बिल्टिन वर्ग कहां खोजें।

--extdirs=पथ
में प्रत्येक निर्देशिका के लिए पथ, उस निर्देशिका की सामग्री को अंत में रखें
कक्षा पथ।

क्लासपाथ
यह एक पर्यावरण चर है जिसमें पथों की एक सूची होती है।

अंतिम वर्ग पथ इस प्रकार बनाया गया है:

* सबसे पहले "-I" के माध्यम से निर्दिष्ट सभी निर्देशिकाएं आएं।

* अगर --क्लासपाथ निर्दिष्ट है, इसका मान संलग्न है। अन्यथा, यदि "क्लासस्पैट"
पर्यावरण चर निर्दिष्ट किया जाता है, फिर उसका मान जोड़ा जाता है। अन्यथा, वर्तमान
निर्देशिका (".") संलग्न है।

* यदि "--bootclasspath" निर्दिष्ट किया गया था, तो उसका मान जोड़ें। अन्यथा, बिल्ट-इन जोड़ें
सिस्टम निर्देशिका, libgcj.jar.

* अंत में, यदि "--extdirs" निर्दिष्ट किया गया था, तो निर्दिष्ट की सामग्री संलग्न करें
कक्षा पथ के अंत में निर्देशिका। अन्यथा, की सामग्री संलग्न करें
"$(prefix)/share/java/ext" पर बिल्ट-इन एक्सटेंशन।

द्वारा निर्मित क्लासफाइल जीसीजे "java.lang.Object" वर्ग के लिए (और "libgcj.jar" में रखा गया है)
इसमें एक विशेष शून्य लंबाई विशेषता "gnu.gcj.gcj-compiled" है। कंपाइलर ढूंढता है
"java.lang.Object" लोड करते समय यह विशेषता और अगर यह नहीं मिला तो एक त्रुटि की रिपोर्ट करेगा,
जब तक कि यह बाइटकोड के लिए संकलित न हो (विकल्प "-फोर्स-क्लासेस-आर्काइव-चेक" का उपयोग किया जा सकता है
इस विशेष मामले में इस व्यवहार को ओवरराइड करें।)

-फोर्स-क्लासेस-आर्काइव-चेक
यह संकलक को हमेशा विशेष शून्य लंबाई विशेषता की जांच करने के लिए मजबूर करता है
"java.lang.Object" में "gnu.gcj.gcj-compiled" और अगर यह नहीं मिला तो एक त्रुटि जारी करें।

-फसोर्स =VERSION
इस विकल्प का उपयोग द्वारा स्वीकृत स्रोत संस्करण को चुनने के लिए किया जाता है जीसीजे। डिफ़ॉल्ट है 1.5.

एन्कोडिंग
जावा प्रोग्रामिंग भाषा पूरे यूनिकोड का उपयोग करती है। अच्छी तरह से एकीकृत करने के प्रयास में
अन्य स्थानों के साथ, जीसीजे की अनुमति देता है जावा फ़ाइलों को लगभग किसी भी एन्कोडिंग का उपयोग करके लिखा जाना है। जीसीजे
संकलन समय पर इन एनकोडिंग को इसके आंतरिक एन्कोडिंग में बदलना जानता है।

आप "--encoding= . का उपयोग कर सकते हैंनाम" एक एन्कोडिंग निर्दिष्ट करने का विकल्प (किसी विशेष वर्ण का
सेट) स्रोत फ़ाइलों के लिए उपयोग करने के लिए। यदि यह निर्दिष्ट नहीं है, तो डिफ़ॉल्ट एन्कोडिंग से आता है
आपका वर्तमान स्थान। यदि आपके होस्ट सिस्टम में अपर्याप्त स्थानीय समर्थन है, तो जीसीजे
डिफ़ॉल्ट एन्कोडिंग को मानता है UTF-8 यूनिकोड की एन्कोडिंग।

"--एन्कोडिंग" को लागू करने के लिए, जीसीजे बस होस्ट प्लेटफ़ॉर्म के "iconv" रूपांतरण रूटीन का उपयोग करता है।
इसका मतलब है कि व्यवहार में जीसीजे मेजबान मंच की क्षमताओं द्वारा सीमित है।

तर्क के लिए अनुमत नाम "--एन्कोडिंग" एक मंच से दूसरे मंच में भिन्न होते हैं (क्योंकि वे
कहीं भी मानकीकृत नहीं हैं)। तथापि, जीसीजे नामित एन्कोडिंग लागू करता है UTF-8
आंतरिक रूप से, इसलिए यदि आप इसे अपनी स्रोत फ़ाइलों के लिए उपयोग करना चुनते हैं तो आपको आश्वस्त किया जा सकता है कि यह
हर होस्ट पर काम करेगा।

:
जीसीजे कई चेतावनियों को लागू करता है। अन्य जेनेरिक के साथ के रूप में जीसीसी चेतावनियाँ, यदि का कोई विकल्प
प्रपत्र "-Wfoo" एक चेतावनी सक्षम करता है, फिर "-Wno-foo" इसे अक्षम कर देगा। यहाँ हमने चुना है
चेतावनी के रूप का दस्तावेजीकरण करें जिसका प्रभाव होगा -- डिफ़ॉल्ट होने के नाते
जो सूचीबद्ध है उसके विपरीत।

-अनावश्यक-संशोधक
इस झंडे के साथ, जीसीजे निरर्थक संशोधक के बारे में चेतावनी देगा। उदाहरण के लिए, यह चेतावनी देगा
यदि एक इंटरफ़ेस विधि "सार्वजनिक" घोषित की जाती है।

-विशिष्ठ-अर्धविराम
इसकी वजह से जीसीजे खाली बयानों के बारे में चेतावनी देने के लिए। खाली बयान दिया गया है
पदावनत।

-नहीं-आउट-ऑफ-डेट
यह विकल्प पैदा करेगा जीसीजे जब कोई स्रोत फ़ाइल उसके मिलान से नई हो तो चेतावनी न दें
कक्षा फ़ाइल। डिफ़ॉल्ट रूप से जीसीजे इस बारे में चेतावनी देंगे।

-कोई पदावनत
चेतावनी दें कि यदि एक पदावनत वर्ग, विधि, या फ़ील्ड को संदर्भित किया जाता है।

-वुनयूज्ड
यह वही है जीसीसीका "-वुनुज्ड" है।

-दीवार
यह "-Wreundant-modifiers -Wextraneous-semicolon -Wunused" जैसा ही है।

जोड़ने
जावा एप्लिकेशन को निष्पादन योग्य प्रोग्राम में बदलने के लिए, आपको इसे आवश्यक के साथ लिंक करना होगा
पुस्तकालय, जैसे सी या सी ++ के लिए। लिंकर डिफ़ॉल्ट रूप से नाम के एक वैश्विक फ़ंक्शन की तलाश करता है
"मुख्य"। चूंकि जावा में वैश्विक कार्य नहीं हैं, और जावा कक्षाओं का एक संग्रह हो सकता है
"मुख्य" विधि के साथ एक से अधिक वर्ग हैं, आपको लिंकर को यह बताना होगा कि इनमें से कौन सा है
उन "मुख्य" विधियों को आवेदन शुरू करते समय इसे लागू करना चाहिए। आप ऐसा कर सकते हैं
इनमें से कोई भी तरीका:

* जब आप एप्लिकेशन को लिंक करते हैं तो वांछित "मुख्य" विधि वाले वर्ग को निर्दिष्ट करें,
नीचे वर्णित "--मेन" ध्वज का उपयोग करना।

* जावा पैकेज (पैकेजों) को एक निष्पादन योग्य के बजाय एक साझा लाइब्रेरी (डीएलएल) में लिंक करें। फिर
"गीज" प्रोग्राम का उपयोग करके एप्लिकेशन को इनवाइट करें, यह सुनिश्चित करते हुए कि "गीज" इसे ढूंढ सकता है
पुस्तकालयों की जरूरत है।

* जावा पैकेजों को "-lgij" ध्वज के साथ लिंक करें, जो "मुख्य" रूटीन में लिंक करता है
"गीज" कमांड से। यह आपको उस वर्ग का चयन करने की अनुमति देता है जिसकी "मुख्य" विधि आप
जब आप एप्लिकेशन चलाते हैं तो चलाना चाहते हैं। आप अन्य "गीज" झंडे का भी उपयोग कर सकते हैं, जैसे कि
गुण सेट करने के लिए "-D" झंडे। "-lgij" पुस्तकालय का उपयोग करना ("गिज" के बजाय
पिछले तंत्र के कार्यक्रम) के कुछ फायदे हैं: यह स्थिर के साथ संगत है
लिंक करना, और पुस्तकालयों को कॉन्फ़िगर या स्थापित करने की आवश्यकता नहीं है।

ये "gij" विकल्प निष्पादन योग्य को जोड़ने से संबंधित हैं:

--मेन=कक्षा का नाम
इस विकल्प का उपयोग उस वर्ग के नाम को निर्दिष्ट करने के लिए लिंक करते समय किया जाता है जिसकी "मुख्य" विधि
परिणामी निष्पादन योग्य चलने पर लागू किया जाना चाहिए।

-Dनाम[=मूल्य]
इस विकल्प का उपयोग केवल "--main" के साथ किया जा सकता है। यह नाम की एक सिस्टम प्रॉपर्टी को परिभाषित करता है नाम
मूल्य के साथ मूल्य. अगर मूल्य निर्दिष्ट नहीं है तो यह खाली स्ट्रिंग के लिए डिफ़ॉल्ट है।
इन सिस्टम गुणों को प्रोग्राम के स्टार्टअप पर इनिशियलाइज़ किया जाता है और इन्हें पुनः प्राप्त किया जा सकता है
"java.lang.System.getProperty" विधि का उपयोग करते हुए रनटाइम पर।

-लगीजो
एक एप्लिकेशन बनाएं जिसकी कमांड-लाइन प्रोसेसिंग "gij" कमांड की हो।

यह विकल्प "--main" का उपयोग करने का एक विकल्प है; आप दोनों का उपयोग नहीं कर सकते।

-स्थैतिक-libgcj
यह विकल्प लिंकिंग को libgcj रनटाइम के स्थिर संस्करण के विरुद्ध करने का कारण बनता है
पुस्तकालय। यह विकल्प केवल तभी उपलब्ध होता है जब संबंधित लिंकर समर्थन मौजूद हो।

चेतावनी: libgcj के स्थिर लिंकिंग के कारण libgcj के आवश्यक भाग छूटे जा सकते हैं।
libgcj के कुछ भाग रनटाइम पर कक्षाओं को लोड करने के लिए प्रतिबिंब का उपयोग करते हैं। चूंकि लिंकर करता है
लिंक समय पर इन संदर्भों को न देखें, यह संदर्भित कक्षाओं को छोड़ सकता है। NS
परिणाम आमतौर पर (लेकिन हमेशा नहीं) एक "ClassNotFoundException" रनटाइम पर फेंका जा रहा है।
इस विकल्प का उपयोग करते समय सावधानी बरतनी चाहिए। अधिक विवरण के लिए देखें:
<http://gcc.gnu.org/wiki/Statically%20लिंकिंग%20libgcj>

कोड पीढ़ी
कई के अलावा जीसीसी कोड पीढ़ी को नियंत्रित करने वाले विकल्प, जीसीजे कई विकल्प हैं
खुद के लिए विशिष्ट।

-C यह विकल्प बताने के लिए प्रयोग किया जाता है जीसीजे बाइटकोड उत्पन्न करने के लिए (।कक्षा फ़ाइलें) वस्तु के बजाय
कोड।

--संसाधन संसाधन का नाम
यह विकल्प बताने के लिए प्रयोग किया जाता है जीसीजे किसी दिए गए फ़ाइल की सामग्री को ऑब्जेक्ट कोड में संकलित करने के लिए
इसलिए इसे कोर प्रोटोकॉल हैंडलर के साथ रनटाइम पर एक्सेस किया जा सकता है: सार:/संसाधन-
नाम। ध्यान दें कि संसाधन का नाम संसाधन का नाम है जैसा कि रनटाइम पर पाया जाता है; के लिये
उदाहरण के लिए, इसका उपयोग "ResourceBundle.getBundle" पर कॉल में किया जा सकता है। वास्तविक फ़ाइल
इस तरह से संकलित किए जाने वाले नाम को अलग से निर्दिष्ट किया जाना चाहिए।

-लक्ष्य =VERSION
इसके साथ प्रयोग किया जा सकता है -C द्वारा उत्सर्जित बायटेकोड का संस्करण चुनने के लिए जीसीजे
डिफ़ॉल्ट है 1.5. बाइटकोड उत्पन्न नहीं करते समय, इस विकल्प का कोई प्रभाव नहीं पड़ता है।

-d डायरेक्टरी
जब "-सी" के साथ प्रयोग किया जाता है, तो यह सभी उत्पन्न होता है ।कक्षा फाइलों में डालनी है
की उपयुक्त उपनिर्देशिका डायरेक्टरी. डिफ़ॉल्ट रूप से उन्हें उपनिर्देशिकाओं में रखा जाएगा
वर्तमान कार्यशील निर्देशिका का।

-फनो-बाउंड्स-चेक
डिफ़ॉल्ट रूप से, जीसीजे कोड उत्पन्न करता है जो सभी सरणी अनुक्रमण की सीमा की जाँच करता है
संचालन। इस विकल्प के साथ, इन चेकों को छोड़ दिया जाता है, जिससे प्रदर्शन में सुधार हो सकता है
कोड के लिए जो बड़े पैमाने पर सरणी का उपयोग करता है। ध्यान दें कि इसका परिणाम अप्रत्याशित हो सकता है
व्यवहार यदि प्रश्न में कोड वास्तव में सरणी सीमा बाधाओं का उल्लंघन करता है। यह
इस विकल्प का उपयोग करना सुरक्षित है यदि आप सुनिश्चित हैं कि आपका कोड कभी नहीं फेंकेगा
"सीमा अपवाद के बाहर सरणी सूचकांक"।

-फनो-स्टोर-चेक
सरणी स्टोर चेक उत्पन्न न करें। वस्तुओं को सरणियों में संग्रहीत करते समय, एक रनटाइम चेक
यह सुनिश्चित करने के लिए सामान्य रूप से उत्पन्न होता है कि वस्तु असाइनमेंट के साथ संगत है
सरणी का घटक प्रकार (जो संकलन-समय पर ज्ञात नहीं हो सकता है)। इसके साथ ही
विकल्प, इन चेकों को छोड़ दिया जाता है। यह कोड के प्रदर्शन में सुधार कर सकता है जो स्टोर करता है
वस्तुओं को अक्सर सरणियों में। इस विकल्प का उपयोग करना सुरक्षित है यदि आप सुनिश्चित हैं कि आपका
कोड कभी भी "ArrayStoreException" नहीं फेंकेगा।

-फजनि
साथ में जीसीजे देशी तरीके लिखने के दो विकल्प हैं: CNI और JNI। डिफ़ॉल्ट रूप से
जीसीजे मान लें कि आप CNI का उपयोग कर रहे हैं। यदि आप एक वर्ग को देशी तरीकों से संकलित कर रहे हैं, और
इन विधियों को जेएनआई का उपयोग करके कार्यान्वित किया जाता है, तो आपको "-फजनी" का उपयोग करना होगा। इस विकल्प
का कारण बनता है जीसीजे स्टब्स उत्पन्न करने के लिए जो अंतर्निहित जेएनआई विधियों को लागू करेगा।

-फनो-जोर
"जोर" कीवर्ड को न पहचानें। यह पुराने संस्करणों के साथ संगतता के लिए है
भाषा विनिर्देश के।

-फनो-ऑप्टिमाइज़-स्टेटिक-क्लास-इनिशियलाइज़ेशन
जब अनुकूलन स्तर "-O2" से अधिक या बराबर हो, जीसीजे अनुकूलित करने का प्रयास करेंगे
जिस तरह से रनटाइम में कॉल उनके पहले उपयोग पर स्थिर कक्षाओं को शुरू करने के लिए की जाती है
(यदि "-सी" निर्दिष्ट किया गया था तो यह अनुकूलन नहीं किया जाता है।) मूल में संकलित करते समय
कोड, "-फनो-ऑप्टिमाइज़-स्टैटिक-क्लास-इनिशियलाइज़ेशन" इस ऑप्टिमाइज़ेशन को बंद कर देगा,
उपयोग में अनुकूलन स्तर की परवाह किए बिना।

--अक्षम-अभिकथन[=क्लास-या-पैकेज]
संकलित कोड में अभिकथन की जाँच के लिए कोड शामिल न करें। अगर
"=क्लास-या-पैकेज" गुम है सभी वर्गों के लिए अभिकथन कोड पीढ़ी को अक्षम करता है,
जब तक कि अधिक विशिष्ट "--enable-assessions" ध्वज द्वारा ओवरराइड नहीं किया जाता है। अगर क्लास-या-पैकेज
एक वर्ग का नाम है, केवल नामित वर्ग के भीतर अभिकथन जांच उत्पन्न करना अक्षम करता है या
इसकी आंतरिक कक्षाएं। अगर क्लास-या-पैकेज एक पैकेज नाम है, जनरेटिंग अक्षम करता है
नामित पैकेज या उप-पैकेज के भीतर अभिकथन जांच।

डिफ़ॉल्ट रूप से, क्लास फ़ाइलों को जनरेट करते समय या ऑप्टिमाइज़ नहीं करते समय अभिकथन सक्षम होते हैं,
और अनुकूलित बायनेरिज़ बनाते समय अक्षम किया गया।

--सक्षम-दावे[=क्लास-या-पैकेज]
अभिकथन की जांच के लिए कोड उत्पन्न करता है। विकल्प शायद गलत नाम है, जैसा कि आपको अभी भी चाहिए
रन-टाइम पर अभिकथन जाँच चालू करने के लिए, और हम ऐसा करने के किसी भी आसान तरीके का समर्थन नहीं करते हैं
वह। तो आंशिक रूप से ओवरराइड करने के अलावा, यह ध्वज अभी तक बहुत उपयोगी नहीं है
"--अक्षम-दावे"।

-findirect-प्रेषण
जीसीजे एक विशेष द्विआधारी संगतता ABI है, जो द्वारा सक्षम है
"-findirect-प्रेषण" विकल्प। इस मोड में, द्वारा उत्पन्न कोड जीसीजे सम्मान करता है
जावा भाषा विशिष्टता में द्विआधारी संगतता गारंटी, और परिणामी
ऑब्जेक्ट फ़ाइलों को उनकी निर्भरता के विरुद्ध सीधे लिंक करने की आवश्यकता नहीं है। बजाय,
सभी निर्भरताओं को रनटाइम पर देखा जाता है। यह व्याख्या किए गए और के मुक्त मिश्रण की अनुमति देता है
संकलित कोड।

ध्यान दें कि, वर्तमान में, "-findirect-dispatch" का उपयोग केवल संकलन करते समय किया जा सकता है ।कक्षा
फ़ाइलें। स्रोत से संकलन करते समय यह काम नहीं करेगा। CNI भी अभी तक साथ काम नहीं करता है
बाइनरी संगतता एबीआई। भविष्य में ये प्रतिबंध हटा लिए जाएंगे
रिलीज.

हालाँकि, यदि आप मानक ABI के साथ CNI कोड संकलित करते हैं, तो आप इसे कोड से कॉल कर सकते हैं
बाइनरी संगतता एबीआई के साथ बनाया गया।

-fbootstrap-classes
इस विकल्प का उपयोग "libgcj" को यह बताने के लिए किया जा सकता है कि संकलित कक्षाओं को लोड किया जाना चाहिए
बूटस्ट्रैप लोडर, सिस्टम क्लास लोडर नहीं। डिफ़ॉल्ट रूप से, यदि आप एक वर्ग संकलित करते हैं
और इसे एक निष्पादन योग्य में लिंक करें, इसे माना जाएगा जैसे कि इसे का उपयोग करके लोड किया गया था
सिस्टम क्लास लोडर। यह सुविधाजनक है, क्योंकि इसका मतलब है कि चीजें जैसे
"Class.forName ()" खोजेगा क्लासपाथ वांछित वर्ग खोजने के लिए।

-फ़्रेड-प्रतिबिंब
यह विकल्प द्वारा उत्पन्न कोड का कारण बनता है जीसीजे कक्षा की कम मात्रा को समाहित करने के लिए
रनटाइम प्रतिबिंब का समर्थन करने के लिए मेटा-डेटा का उपयोग किया जाता है। इस बचत की लागत का नुकसान है
मानक जावा रनटाइम की कुछ प्रतिबिंब क्षमताओं का उपयोग करने की क्षमता
वातावरण। जब सही प्राप्त करने के लिए आवश्यक को छोड़कर सभी मेटा-डेटा सेट करें
रनटाइम सेमेन्टिक्स समाप्त हो गया है।

कोड के लिए जो प्रतिबिंब का उपयोग नहीं करता है (अर्थात क्रमांकन, RMI, CORBA या कॉल विधियाँ
"java.lang.reflect" पैकेज में), "-freduced-reflection" का परिणाम उचित होगा
निष्पादन योग्य कोड आकार में बचत के साथ संचालन।

JNI ("-fjni") और बाइनरी संगतता ABI ("-findirect-dispatch") काम नहीं करती
पूर्ण प्रतिबिंब मेटा-डेटा के बिना ठीक से। इस वजह से, इसका उपयोग करने में त्रुटि है
"-फ़्रेड-प्रतिबिंब" के साथ ये विकल्प।

चेतावनी: यदि कोई प्रतिबिंब मेटा-डेटा नहीं है, तो "सुरक्षा प्रबंधक" का उपयोग करने वाला कोड हो सकता है
ठीक से काम नहीं करना। यदि कॉलिंग विधि है तो "Class.forName ()" को कॉल करना भी विफल हो सकता है
कोई प्रतिबिंब मेटा-डेटा नहीं।

कॉन्फ़िगर-समय ऑप्शंस
कुछ जीसीजे कोड पीढ़ी विकल्प परिणामी ABI को प्रभावित करते हैं, और इसलिए केवल हो सकता है
अर्थपूर्ण रूप से दिया जाता है जब "libgcj", रनटाइम पैकेज, कॉन्फ़िगर किया गया है। "libgcj" डालता है
इस समूह से उपयुक्त विकल्प a . में कल्पना फ़ाइल जो द्वारा पढ़ी जाती है जीसीजे. ये विकल्प
पूर्णता के लिए यहां सूचीबद्ध हैं; यदि आप "libgcj" का उपयोग कर रहे हैं तो आप स्पर्श नहीं करना चाहेंगे
ये विकल्प।

-फ्यूज-बोहेम-जीसी
यह Boehm GC बिटमैप मार्किंग कोड के उपयोग को सक्षम बनाता है। विशेष रूप से इसका कारण बनता है
जीसीजे प्रत्येक vtable में एक ऑब्जेक्ट मार्किंग डिस्क्रिप्टर डालने के लिए।

-फैश-सिंक्रनाइज़ेशन
डिफ़ॉल्ट रूप से, सिंक्रनाइज़ेशन डेटा ("सिंक्रनाइज़", "प्रतीक्षा करें", और . के लिए उपयोग किया जाने वाला डेटा
"सूचित करें") प्रत्येक वस्तु में एक शब्द द्वारा इंगित किया जाता है। इस विकल्प के साथ जीसीजे मानता है कि
यह जानकारी हैश तालिका में संग्रहीत है, न कि ऑब्जेक्ट में ही।

-फ्यूज-डिवाइड-सबरूटीन
कुछ प्रणालियों पर, एक पुस्तकालय दिनचर्या को पूर्णांक विभाजन करने के लिए कहा जाता है। यह है
शून्य से विभाजित करते समय अपवाद हैंडलिंग को सही करने की आवश्यकता है।

-fचेक-संदर्भ
कुछ सिस्टम पर किसी ऑब्जेक्ट तक पहुँचने पर इनलाइन जाँच सम्मिलित करना आवश्यक है
एक संदर्भ के माध्यम से। अन्य सिस्टम पर आपको इसकी आवश्यकता नहीं होगी क्योंकि नल पॉइंटर एक्सेस करता है
प्रोसेसर द्वारा स्वचालित रूप से पकड़े जाते हैं।

-फ्यूज-परमाणु-बिल्डिन्स
कुछ प्रणालियों पर, जीसीसी अंतर्निहित परमाणु संचालन के लिए कोड उत्पन्न कर सकता है। इस का उपयोग करें
जावा कोड संकलित करते समय जीसीजे को इन बिल्टिन का उपयोग करने के लिए मजबूर करने का विकल्प। यह कहां
क्षमता मौजूद है, इसे स्वचालित रूप से पहचाना जाना चाहिए, इसलिए आपको आमतौर पर इसकी आवश्यकता नहीं होगी
इस विकल्प का उपयोग करने के लिए।

onworks.net सेवाओं का उपयोग करके ऑनलाइन mips-linux-gnu-gcj का उपयोग करें


Ad


Ad

नवीनतम Linux और Windows ऑनलाइन प्रोग्राम