From: Dmitri Gribenko Date: Sun, 6 Jan 2013 13:38:34 +0000 (+0000) Subject: Clang docs: add some information about the difference between 'clang' and 'clang... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1834a048052e95195b71b6fa9189ecaf00e7d10d;p=clang Clang docs: add some information about the difference between 'clang' and 'clang -cc1' This is coming up again and again on the mailing list and IRC. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171656 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/FAQ.rst b/docs/FAQ.rst new file mode 100644 index 0000000000..dc97507f05 --- /dev/null +++ b/docs/FAQ.rst @@ -0,0 +1,52 @@ +================================ +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 + + 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 + ^ + 1 error generated. + +``clang -cc1`` is the frontend, ``clang`` is the :doc:`driver +`. 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