Interacting with the compiler driver
A compiler driver is similar to the clerk at a burger place who interfaces with you, recognizes your order, passes it to the backend that builds your burger, and then delivers it back to you with coke and perhaps some ketchup sachets, thereby completing your order. The driver is responsible for integrating all necessary libraries and tools in order to provide the user with a friendlier experience, freeing the user from the need to use individual compiler stages such as the frontend, backend, assembler, and linker. Once you feed your program source code to a compiler driver, it can generate an executable. In LLVM and Clang, the compiler driver is the clang
tool.
Consider the simple C program, hello.c
:
#include <stdio.h> int main() { printf("Hello, World!\n"); return 0; }
To generate an executable for this simple program, use the following command:
$ clang hello.c –o hello
Tip
Use instructions from Chapter 1, Build and Install LLVM...