2009-10-03 13 views
10

मैं कुछ प्रोग्रामिंग चुनौतियों को हल करने के लिए यूवीए ऑनलाइन न्यायाधीश का उपयोग कर रहा हूं, और, मेरे समाधान सबमिट करते समय, मुझे बताया गया है कि न्यायाधीश जीसीसी/जी ++ को निम्नलिखित पैरामीटर का उपयोग करके अपना कोड संकलित करेगा जो मुझे नहीं पता: -lm -lcrypt -pipe -DONLINE_JUDGEये जीसीसी/जी ++ पैरामीटर क्या हैं?

वे क्या करते हैं? अग्रिम बहुत बहुत धन्यवाद!

+4

gcc --help दोस्त! – Ashwin

+2

अश्विन, यह तुरंत स्पष्ट नहीं है कि 'एलएम' पैरामीटर' पाइप 'से एक अलग प्रकार है। उत्तरार्द्ध एक शब्द है, जबकि पूर्व वास्तव में 'एल' है जिसके बाद पुस्तकालय के संक्षिप्त नाम हैं। इसके अलावा, उन चारों में से, 'पाइप' एकमात्र ऐसा है जो वास्तव में 'gcc --help' के आउटपुट में दिखाई देता है। बाकी को '-v' की आवश्यकता होती है, और आउटपुट के कई पृष्ठों के माध्यम से बहने के बाद भी, आपको अभी भी' lm' या 'lcrypt' का उल्लेख करने वाला कुछ भी नहीं मिलेगा। –

+0

@Rob: लेकिन आपको कुछ ऐसा लगता है -l <...> (सटीक दस्तावेज़ीकरण को नहीं जानते)। तो आप देख सकते हैं कि यह कुछ है। (डी <...> के लिए समान)। – mmmmmmmm

उत्तर

23

"-lm -lcrypt" गणित और क्रिप्टोग्राफी पुस्तकालयों से लिंक करने के लिए निर्दिष्ट करता है - उपयोगी यदि आप math.h और crypt.h में परिभाषित कार्यों का उपयोग करने जा रहे हैं। "-पाइप" का मतलब है कि यह मध्यवर्ती फाइलें नहीं बनाएगा बल्कि इसके बजाय पाइप का उपयोग करेगा। "-DONLINE_JUDGE" "ONLINE_JUDGE" नामक एक मैक्रो को परिभाषित करता है, जैसे कि आप अपने कोड में "#define" डाल देंगे। मुझे लगता है कि ऐसा है कि आप अपने कोड में "#ifdef"/"# endif" ब्लॉक में निर्णय के लिए कुछ विशिष्ट डाल सकते हैं।

+4

"गणित और क्रिप्टोग्राफी पुस्तकालयों को शामिल करने के लिए" गणित और क्रिप्टोग्राफी पुस्तकालयों से लिंक होना चाहिए "। –

+0

कोई बुरा सुझाव नहीं, @gf। –

+4

बस पूर्णता के लिए: -l <...> पुस्तकालयों को लिंक करता है "lib <...> .so *"। तो -एलएम लिंक "libm.so *" और -lcrypt लिंक "libcrypt.so *"। – mmmmmmmm

संबंधित मुद्दे