================================
Frequently Asked Questions (FAQ)
================================

.. contents::
   :local:

Driver
======

I run ``clang -cc1 ...`` and get weird errors about missing headers
-------------------------------------------------------------------

Given this source file:

.. code-block:: c

  #include <stdio.h>

  int main() {
    printf("Hello world\n");
  }


If you run:

.. code-block:: console

  $ clang -cc1 hello.c
  hello.c:1:10: fatal error: 'stdio.h' file not found
  #include <stdio.h>
           ^
  1 error generated.

``clang -cc1`` is the frontend, ``clang`` is the :doc:`driver
<DriverInternals>`.  The driver invokes the frontend with options appropriate
for your system.  To see these options, run:

.. code-block:: console

  $ clang -### -c hello.c

Some clang command line options are driver-only options, some are frontend-only
options.  Frontend-only options are intended to be used only by developers.
Users should not run ``clang -cc1`` directly.

If you want to use a frontend-only option ("a ``-cc1`` option"), for example
``-ast-dump``, then you need to take the ``clang -cc1`` line generated by the
driver and add the option you need.  Alternatively, you can run
``clang -Xclang <option> ...`` to force the driver pass ``<option>`` to
``clang -cc1``.

