2011-11-25 5 views
10

Autoconf/Automake समझ में नहीं आता प्राचीन सी compilers कि -c और -o विकल्पों का एक साथ इस्तेमाल (इस नाम के साथ एक वस्तु फ़ाइल बनाने) समझ में नहीं आया समर्थन करने के लिए दर्द में हैं । AM_PROG_CC_C_O और एक विशेष रैपर स्क्रिप्ट, और ऑटोमैक मैनुअल warns you to use them है यदि आप subdir-objects मोड का उपयोग करना चाहते हैं।यूनिक्स सी ++ compilers कि -o -c

AM_PROG_CXX_C_O नहीं है। इसके बजाय C++ कंपाइलर का परीक्षण करने के लिए AM_PROG_CC_C_O को संशोधित करना मुश्किल नहीं है, लेकिन मुझे आश्चर्य है कि यह आवश्यक है या नहीं। क्या कभी यूनिक्स सी ++ कंपाइलर (सीफ्रंट, शायद?) था जो -c और -o के साथ-साथ उपयोग का समर्थन नहीं करता था? उस पर आओ, सी कंपाइलर्स कितने पुराने हैं जो इसका समर्थन नहीं करते हैं - उदाहरण के लिए, इस समस्या के साथ कभी भी एक C89- सहायक कंपाइलर था?

+0

+1: निश्चित रूप से _were_ ऐसे (सी) कंपाइलर्स। चाहे कोई सुविधा (समर्थित) कंपाइलर हैं, बिना सुविधा के एक महत्वपूर्ण सवाल है। क्या उपयोग में ऐसे कंपाइलरों के पुराने संस्करण अभी भी मूल्यांकन करने के लिए कठिन हैं; सॉफ़्टवेयर की 'तिथि से पहले सबसे अच्छी' तिथि के बाद लंबे समय तक उपयोग करने की प्रवृत्ति है। –

+3

"-c -o" के साथ समस्या यह है कि -सी संभावित रूप से कंपाइलर को कई आउटपुट बनाता है, जिस बिंदु पर -o विकल्प बकवास हो जाता है। –

+0

@ सिमोन रिचटर यह एक दिलचस्प बिंदु है, और फिर भी, अंतिम कंपाइलर है कि * मैं * व्यक्तिगत रूप से जानता हूं कि '-c -o' के साथ कुछ समझदार नहीं किया गया है सोलारिस के के एंड आर-केवल'/बिन/सीसी' है, जो ' टी कुछ भी जो आप शुरू कर सकते हैं और अपने आप को एक नया कंपाइलर बूटस्ट्रैप कर सकते हैं। – zwol

उत्तर

1

कंपाइलर हैं, मुख्य रूप से एम्बेडेड उद्योग पर लक्षित, जहां आपको मैन्युअल रूप से संकलित और लिंक करना होगा। उन मामलों में, -c विकल्प समझ में नहीं आता है।

यह देखते हुए कि लिनक्स एम्बेडेड सिस्टम में अधिक से अधिक उपयोग किया जाता है, आपको निश्चित रूप से उन्हें ध्यान में रखना चाहिए।

+0

मुझे नहीं पता कि "मैन्युअल रूप से संकलित और लिंक" से आपका क्या मतलब है। क्या आप मुझे उस संपत्ति के साथ एक कंपाइलर के विशिष्ट उदाहरण पर इंगित कर सकते हैं, जिसे आप सोच रहे हैं, आदर्श रूप से इसके दस्तावेज़ीकरण के लिए? – zwol

+0

इसके अलावा, मुझे यह ज़ोर देने की अनुमति दें कि यह एक लिनक्स-विशिष्ट प्रश्न नहीं है जिसे मैं यहां पूछ रहा हूं। मैं इसे ज्यादातर ऐतिहासिक रुचि वाले प्रश्न के रूप में देखता हूं। – zwol

+0

"मैन्युअल रूप से" मेरा मतलब है कि आप एक ऑब्जेक्ट फ़ाइल को संकलित करने के लिए एक आदेश जारी करते हैं और दूसरा लिंक करने के लिए। कोई रैपर नहीं है जो संकलित और लिंक करता है, इसलिए '-c' विकल्प रखने में कोई बात नहीं है। एक ठोस उदाहरण 'आईएआर सिस्टम' से कंपाइलर्स है, जो 'आईएआर एम्बेडेड वर्कबेंच 'का हिस्सा हैं। मुझे यकीन नहीं है कि मैन्युअल ऑनलाइन हैं, लेकिन आप उन्हें प्राप्त करने के लिए एक किकस्टार्ट संस्करण डाउनलोड कर सकते हैं। – Lindydancer

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