2015-01-06 14 views
7

मैं मैक OSX Yosemite बजना के बजाय जीसीसी उपयोग करने के लिए जब सीसी शुरू हो जाती है प्राप्त करने की कोशिश कर रहा है, लेकिन कोई फर्क नहीं पड़ता कि मुझे क्या करना, इसके साथ खेलने के लिए मना कर दिया पर जीसीसी बजना करने के लिए। मैंने पहले से ही अपने bash_profile/bashrc को बदलने और सिम्लिंक को फिर से जोड़ने की कोशिश की है, लेकिन इसका कोई फायदा नहीं हुआ - हर बार जब मैं "सीसी" का आह्वान करता हूं तो यह अभी भी घिरा हुआ है। मैं इसे जीसीसी होने के लिए मजबूर करने की कोशिश कर रहा हूं (और नहीं, सिर्फ जीसीसी को कॉल करना एक विकल्प नहीं है)।सेट सीसी के बजाय OSX Yosemite

मैं पहले एक ऐसी ही सवाल (Make gcc default c compiler on Yosemite/disable clang) से पूछा।

+1

मैं हमेशा जब लोग कहते हैं कि वे बजना से अधिक जीसीसी उपयोग करना चाहते हैं इसमें रुचि है - आप वैचारिक कारणों या मन में कुछ अन्य लक्ष्य है? –

+1

नहीं, मुझे बस एक बहुत ही आर्केन टुकड़ा चलाने की ज़रूरत है जो जीसीसी मानती है लेकिन क्लैंग के साथ नहीं चल सकती है। – Hendrik

+3

एक्सकोड 6 में, 'जीसीसी' 'क्लैंग' का एक लिंक है, वास्तविक 'जीसीसी' नहीं। आपको कुछ आकार या रूप में जीसीसी का कस्टम निर्माण करना होगा, और फिर लिंक को बदलें (और यदि आप XCode को अपग्रेड करते हैं और कमांड लाइन टूल्स को दोबारा स्थापित करते हैं तो उन्हें बदलना जोखिम)। –

उत्तर

6

आपको यह नहीं करना चाहिए। बहुत सारे औजार इंस्टॉलेशन बाइनरी पर भरोसा करते हैं कि उन्हें क्या करना चाहिए। एक अन्य विकल्प पर्यावरण परिवर्तनीय CC से gcc पर सेट करना है, और cc ... के बजाय $CC ... के साथ संकलन का आह्वान करना है; configure (autotools) या cmake के माध्यम से पैकेज बनाने के दौरान इस पर्यावरण चर को भी उठाया जाएगा।

यह भी जीसीसी के MacPorts संस्करणों के साथ एक संगत दृष्टिकोण (ज्यादा तारीख जीसीसी-4.9.2 करने के लिए और अधिक की तरह) है, जो के साथ स्थापित किया जा सकता है: sudo port select --set gcc mp-gcc49

+0

मैंने पर्यावरण चर सेट करने की कोशिश की और यह काम नहीं किया। यह एक ऐसा मामला भी नहीं है जहां मैं सीसी या जीसीसी को मैन्युअल रूप से कॉल कर रहा हूं, या जिस पर कोई वास्तविक नियंत्रण है जिसे कॉल किया जाता है, इसलिए इसके बजाय मैं सीसी को सिर्फ जीसीसी चलाने के लिए प्राप्त करने की कोशिश कर रहा हूं। – Hendrik

+0

@ हेन्ड्रिक - मुझे लगता है कि आप उपनाम स्थापित करने का प्रयास कर सकते हैं, उदाहरण के लिए, 'उपनाम सीसी = "जीसीसी" '(बैश) या' ऊर्फ सीसी 'gcc'' ([t] csh)। लेकिन यह भी [समस्याग्रस्त] है (http://unix.stackexchange.com/questions/1496/why-doesnt-my-bash-script-recognize-aliases)। –

+0

क्या सॉफ़्टवेयर कम से कम 'पथ' का सम्मान करता है? आप इसे पर्यावरण प्रदान करने का प्रयास कर सकते हैं जो केवल जीसीसी (और झुकाव नहीं) के बारे में जानता है – sapi

9

न तो ओएस एक्स और न ही Xcode असली के साथ आता है जीसीसी। स्क्रिप्ट के साथ संगतता के लिए जो संकलक मानते हैं उसे "जीसीसी" कहा जाता है, उसके पास उस नाम से निष्पादन योग्य होते हैं, लेकिन वे क्लैंग के लिए सभी मोर्च हैं। सिमलिंकिंग की कोई मात्रा नहीं, पर्यावरण चर सेट करना, या उपनाम सेट अप करने से उन एक्जिक्यूटिव को वास्तविक जीसीसी चलाने की अनुमति मिल जाएगी।

आप जीसीसी चाहते हैं, आप इसे स्थापित करने की जरूरत है। आप मैकपॉर्ट्स (जिसे मैं परिचित हूं) जैसे पैकेज मैनेजर्स में से एक का उपयोग कर ऐसा कर सकता हूं। मुझे यकीन है कि आप होमब्रू का भी उपयोग कर सकते हैं।

आप/usr/bin में कुछ भी संशोधित नहीं करना चाहिए। यदि आप पहले से ऐसा कर चुके हैं, तो संभव है कि आपको जो भी बदला है, उसे पुनर्स्थापित करना चाहिए।

अच्छी तरह से व्यवहार पैकेज प्रबंधकों भी है कि निर्देशिका बदलाव नहीं करेगी। उन्हें एक अलग निर्देशिका जैसे/opt/local/bin,/usr/local/bin, या जैसा स्थापित करना चाहिए। उस स्थिति में, आप उन निर्देशिकाओं को/usr/bin से पहले रखने के लिए अपने PATH को संशोधित करना चाहेंगे।