Apa hubungan antara alat baris perintah Xcode dan Xcode

17

Ketika saya menginstal Xcode dari App Store, saya dapat mengkompilasi program dalam Xcode serta baris perintah juga. Beberapa utilitas baris perintah suka clang, makedan gitsemua tersedia ketika Xcode.app diinstal. Jadi saya berpikir bahwa paket alat baris perintah terpisah hanya untuk mereka yang tidak ingin IDE lengkap diinstal.

Tetapi yang mengejutkan saya, salah satu masalah penautan yang saya temui ketika mengkompilasi MacVim dapat berhasil diselesaikan dengan menginstal alat-alat baris perintah xcode-select --install. Jadi ternyata Xcode.app dan alat-alat baris perintah berbeda, setidaknya dengan cara yang halus. Apa bedanya? Apakah yang terakhir memiliki cakupan yang lebih baik untuk semua hal yang penting untuk pemrograman daripada yang sebelumnya?

Saat ini saya menggunakan Xcode 6.0.1 di Mavericks.

Siyuan Ren
sumber

Jawaban:

5

Anda dapat melihatnya sebagai:

  • Alat baris perintah adalah fondasi dasar. Banyak alat dasar yang diperlukan untuk mengkompilasi kode Swift / Objective-C Anda.
  • XCode adalah IDE yang membawa beberapa paket tambahan dengannya.

Jadi alat-alat baris perintah memastikan bahwa alat-alat dasar UNIX tertutup (seperti GCC misalnya) untuk dapat mengkompilasi dan menautkan kode.

Xcode kemudian menggunakan alat-alat dasar itu.


Dari dokumen:

Apa itu Paket Alat Baris Perintah?

Paket Alat Baris Perintah adalah paket mandiri kecil yang tersedia untuk diunduh secara terpisah dari Xcode dan memungkinkan Anda melakukan pengembangan baris perintah di OS X. Paket ini terdiri dari dua komponen: OS X SDK dan alat baris perintah seperti Dentang, yang diinstal di / usr / bin.

Bastian Gruber
sumber
8
Namun ternyata Xcode.app dilengkapi dengan alat baris perintah sendiri seperti clang, git, makejuga. Mengapa menginstal salinan lain dari alat-alat ini diperlukan untuk mengkompilasi beberapa perangkat lunak?
Siyuan Ren
Kenapa rupanya? Git dan make adalah alat tambahan yang tidak termasuk dalam alat baris perintah "dasar".
Bastian Gruber
3
git, makeSemua ada di direktori /Library/Developer/CommandLineTools/usr/binsehingga mereka, memang, termasuk dalam alat baris perintah "dasar".
Siyuan Ren