diff options
-rw-r--r-- | docs/FAQ.rst | 52 | ||||
-rw-r--r-- | docs/index.rst | 1 |
2 files changed, 53 insertions, 0 deletions
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 <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``. + diff --git a/docs/index.rst b/docs/index.rst index 55f714239c..4a20bb9fa6 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -21,6 +21,7 @@ Using Clang as a Compiler AddressSanitizer ThreadSanitizer MemorySanitizer + FAQ Using Clang as a Library ======================== |