Xcode और Xcode कमांड लाइन टूल्स के बीच क्या संबंध है


17

जब मैं ऐप स्टोर से Xcode स्थापित करता हूं, तो मैं Xcode के साथ-साथ कमांड लाइन में भी कार्यक्रमों को संकलित कर सकता हूं। Xcode.app स्थापित होने पर कई कमांड लाइन उपयोगिताओं clang, makeऔर gitसभी उपलब्ध हो जाती हैं। इसलिए मैंने सोचा कि कमांड लाइन टूल्स का अलग पैकेज केवल उन लोगों के लिए है जो एक पूर्ण आईडीई स्थापित नहीं करना चाहते हैं।

लेकिन मेरे आश्चर्य के साथ, मैकविम को संकलित करते समय मुझे जो लिंकिंग समस्याएं आईं, उनमें से कमांड लाइन टूल को स्थापित करके सफलतापूर्वक हल किया जा सकता है xcode-select --install। तो जाहिरा तौर पर Xcode.app और कमांड लाइन उपकरण अलग-अलग हैं, कम से कम सूक्ष्म तरीकों से। फिर क्या फर्क है? क्या बाद वाले को पूर्व की तुलना में प्रोग्रामिंग के लिए सभी आवश्यक चीजों के लिए बेहतर कवरेज है?

वर्तमान में मैं Mavericks पर Xcode 6.0.1 का उपयोग कर रहा हूं।

जवाबों:


5

आप इसे इस प्रकार देख सकते हैं:

  • कमांड लाइन उपकरण मूल आधार हैं। आपके स्विफ्ट / ऑब्जेक्टिव-सी कोड को संकलित करने के लिए कई बुनियादी उपकरणों की आवश्यकता होती है।
  • XCode IDE है जो अपने साथ कुछ अतिरिक्त पैकेज लाता है।

इसलिए कमांड लाइन टूल यह सुनिश्चित करते हैं कि मूल UNIX टूल कवर किए गए हैं (उदाहरण के लिए GCC) कोड को संकलित करने और लिंक करने में सक्षम होने के लिए।

Xcode तो उन बुनियादी उपकरणों का उपयोग कर रहा है।


दस्तावेजों से:

कमांड लाइन टूल्स पैकेज क्या है?

कमांड लाइन टूल पैकेज एक छोटा सा स्व-निहित पैकेज है जो Xcode से अलग से डाउनलोड करने के लिए उपलब्ध है और जो आपको OS X में कमांड लाइन डेवलपमेंट करने की अनुमति देता है। इसमें दो घटक होते हैं: OS X SDK और कमांड-लाइन टूल जैसे Clang, / usr / bin में स्थापित हैं।


8
लेकिन जाहिरा तौर पर Xcode.app इस तरह के रूप में अपनी कमांड लाइन उपकरण के साथ आता है clang, git, makeसाथ ही। कुछ सॉफ़्टवेयर संकलित करने के लिए इन उपकरणों की एक और प्रतिलिपि क्यों आवश्यक है?
सियुआन रेन

जाहिरा तौर पर क्यों? गिट और मेक अतिरिक्त टूल हैं जो "बेसिक" कमांड लाइन टूल में शामिल नहीं हैं।
बैस्टियन ग्रुबर

3
git, makeसभी निर्देशिका में /Library/Developer/CommandLineTools/usr/binहैं, इसलिए वे वास्तव में "मूल" कमांड लाइन टूल में शामिल हैं।
सियुआन रेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.