38

When I install Xcode from App Store, I can compile programs in Xcode as well as command line too. Several command line utilities like clang, make and git all become available when Xcode.app is installed. So I thought that the separate package of command line tools are only for those who do not want a full IDE installed.

But to my surprise, one of the linking problems I encountered when compiling MacVim can be successfully solved by installing the command line tools with xcode-select --install. So apparently the Xcode.app and the command line tools differ, at least in subtle ways. What is the difference then? Does the latter have better coverage for all the essentials for programming than the former?

Currently I am using Xcode 6.0.1 on Mavericks.

1 Answer 1

9

You can see it as:

  • The command line tools are the basic foundation. Many basic tools are needed to compile your Swift/Objective-C code.
  • XCode is the IDE which brings a few additional packages with it.

So the command line tools get sure that the basic UNIX tools are covered (as GCC for example) to be able to compile and link code.

Xcode then is using those basic tools.


From the documents:

What is the Command Line Tools Package?

The Command Line Tools Package is a small self-contained package available for download separately from Xcode and that allows you to do command line development in OS X. It consists of two components: OS X SDK and command-line tools such as Clang, which are installed in /usr/bin.

5
  • 16
    But apparently Xcode.app comes with its own command line tools such as clang, git, make as well. Why is installing another copy of these tools necessary to compile some software?
    – Siyuan Ren
    Commented Oct 17, 2014 at 10:57
  • Why apparently? Git and make are additional tools which are not included in the "basic" Command line tools.
    – ohboy21
    Commented Oct 17, 2014 at 11:20
  • 6
    git, make are all in the directory /Library/Developer/CommandLineTools/usr/bin so they are, indeed, included in the "basic" command line tools.
    – Siyuan Ren
    Commented Oct 17, 2014 at 11:54
  • @BastianGruber could you please elaborate in simple terms apart from what is in documentation what is command line tools package is ? Commented Nov 6, 2020 at 19:05
  • I don't believe this is true. Right now I have baffling compilation problems involving the standard C++ library. Within Xcode.app, the only SDK is MacOSX12.1.sdk. Under CommandLineTools, I have MacOSX10.14.sdk and MacOSX10.15.sdk. CMake, for some reason, is using the Xcode one (12.1) on an OS 11.5 system.
    – Oscar
    Commented Aug 25, 2022 at 0:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .