बायनेरिज़ को बदलने के साथ कुछ संभावित मुद्दे हैं:
1) जब आप macOS अपडेट करते हैं, तो उन्हें फिर से बदल दिया जा सकता है
2) gcc द्वारा बनाया गया बाइनरी क्लैंग के साथ निर्मित एक से अलग काम कर सकता है
3) कंपाइलर (यानी कमांड लाइन विकल्प के साथ-साथ अन्य इनपुट / आउटपुट फाइल) के लिए इंटरफ़ेस भिन्न हो सकता है, जिसमें थोड़ा अलग रेक्स आदि हो सकते हैं।
सामान्य तौर पर, यदि आप बायनेरिज़ की जगह लेते हैं और कमांड लाइन पर gcc चलाने वाले अपने स्वयं के सॉफ़्टवेयर का निर्माण शुरू करते हैं - जो समस्या के बिना काम करेगा।
समस्या यह है कि आपके कंप्यूटर पर अन्य प्रोग्राम यह मान सकते हैं कि आप वहाँ पर हैं। इसलिए इंस्टॉलर, Xcode, इत्यादि विषम समस्याओं का सामना कर सकते हैं। ज्यादातर शायद यह मामला नहीं है, क्योंकि एक्सकोड जीसीसी बाइनरी नहीं चलाएगा, लेकिन तीसरे पक्ष की परियोजनाओं या पुरानी परियोजनाओं के लिए - यह जानना मुश्किल है।
मूल रूप से: आम तौर पर सिस्टम संकलक बायनेरिज़ को बदलने के लिए जोखिम के लायक नहीं है। बस पक्ष में अपने स्वयं के संकलक के लिए नए बायनेरिज़ जोड़ें (यानी उन्हें होमब्रे या जो भी स्थापित करें)। फिर आप उन संकलक का उपयोग करना चुनते हैं, और बाकी सब कुछ ऐसा व्यवहार करेगा जैसा उसने पहले किया था।
इस प्रश्न के बारे में कि आपने अपने प्रश्न के पहले संपादन में खोज की थी कि Apple ने ऐसा क्यों किया: "यह यूनिक्स सिस्टम पर एक सामान्य घटना है जो पुराने संकलक के लिए पुराने नाम रखना वास्तव में नए संकलक के लिए एक मोर्चा है। यह आमतौर पर पुराने कार्यक्रमों के साथ संगतता प्राप्त करने के लिए किया जाता है। यानी आपके पास एक ऐसा प्रोजेक्ट था जो कंपाइलर नाम के रूप में "cc" के बजाय "gcc" को हार्डकोड करता है, और जब आप क्लैग के साथ gcc को प्रतिस्थापित करते हैं तो हर किसी की बिल्ड स्क्रिप्ट को तोड़ने के बजाय, आप बस एक gcc बाइनरी जोड़ते हैं जो वास्तव में क्लैंग चलाता है। ज्यादातर मामलों में, जो कुछ दुर्लभ मामलों में लोगों द्वारा अपेक्षित आउटपुट का उत्पादन करेगा - यह काम नहीं करता है, और आपको पुराने (या अलग) संकलक को स्वयं स्थापित करना होगा।
gcc
में/usr/local/...
। और समायोजित करेंPATH
।