¿Cuál es la relación entre las herramientas de línea de comando Xcode y Xcode?

17

Cuando instalo Xcode desde App Store, también puedo compilar programas en Xcode y en la línea de comandos. Varias utilidades de línea de comandos como clang, makey gittodas están disponibles cuando Xcode.app está instalado. Así que pensé que el paquete separado de herramientas de línea de comandos es solo para aquellos que no desean instalar un IDE completo.

Pero para mi sorpresa, uno de los problemas de vinculación que encontré al compilar MacVim puede resolverse con éxito instalando las herramientas de línea de comandos con xcode-select --install. Aparentemente, las herramientas Xcode.app y de línea de comando difieren, al menos de manera sutil. ¿Cuál es la diferencia entonces? ¿Tiene este último una mejor cobertura de todos los elementos esenciales para la programación que el primero?

Actualmente estoy usando Xcode 6.0.1 en Mavericks.

Siyuan Ren
fuente

Respuestas:

5

Puedes verlo como:

  • Las herramientas de línea de comando son la base básica. Se necesitan muchas herramientas básicas para compilar su código Swift / Objective-C.
  • XCode es el IDE que trae algunos paquetes adicionales.

Por lo tanto, las herramientas de línea de comandos se aseguran de que las herramientas básicas de UNIX estén cubiertas (como GCC, por ejemplo) para poder compilar y vincular el código.

Xcode está usando esas herramientas básicas.


De los documentos:

¿Qué es el paquete de herramientas de línea de comandos?

El paquete de herramientas de línea de comandos es un pequeño paquete autónomo disponible para descargar por separado desde Xcode y que le permite realizar el desarrollo de la línea de comandos en OS X. Consta de dos componentes: OS X SDK y herramientas de línea de comandos como Clang, que están instalados en / usr / bin.

Bastian Gruber
fuente
8
Pero al parecer Xcode.app viene con sus propias herramientas de línea de comandos como clang, git, maketambién. ¿Por qué es necesaria la instalación de otra copia de estas herramientas para compilar algún software?
Siyuan Ren
¿Por qué aparentemente? Git y make son herramientas adicionales que no están incluidas en las herramientas de línea de comando "básicas".
Bastian Gruber
3
git, makeestán todos en el directorio, /Library/Developer/CommandLineTools/usr/binpor lo que están incluidos en las herramientas de línea de comandos "básicas".
Siyuan Ren