If it were spelled Klang, then it might be a reference some Klingon character from Star Trek, but it’s not. Clang is one of those program names that’s a contraction. In this instance, it’s a portmanteau of C Language. It’s an über nifty command line compiler.
In my most recent C programming book, Beginning Programming with C For Dummies, I focus on the IDE method of program creation, specifically by using the Code::Blocks environment. That’s pretty much the way all the cool kids are programming today.
For the small programs introduced in my books, however, the command line works just fine. In fact, if you’re familiar with the command line, it can be easier to use than an IDE for those small programs.
I use the command line to compose all the sample code in this blog.
For years, the cc
compiler, or the GNU version gcc
, was preferred for compiling C code. After all, cc
, was the original C Compiler developed by Kernighan and Ritchie.
Today, a better solution is clang
, the C language compiler. Unlike gcc
, it doesn’t attempt to compile everything, just C code. And it does a super spiffy job.
On many Unix systems,
cc
is aliased to theclang
compiler, so usingcc
orclang
to compile is the same thing.
First, a tutorial:
To compile on the command line, you need a text editor and a compiler/linker. The routine works like this:
- Use a text editor to create your code. I use
vim
, the vi improved editor, although Unix is bursting at the seams with text editors various and sundry. - Compile and link the code. The
cc
command is followed by the source code filename. That command both compiles and links, assuming no errors are found. - Run the program. Type the program’s name at the prompt to see how it works.
As an example, suppose you wanted to compose the following code:
#include <stdio.h> int main() { int x; for(x=65;x<65+26;x++); printf("%c",x); putchar('\n'); return(0); }
This code contains a deliberate error — a common programming mistake, but not one that generates a warning when compiled with cc
. If you can’t find the problem (and most programmers won’t, especially in their own code), then clang
will.
Assume the source code filename is 0607.c
. The code is compiled with this command:
clang 0607.c
Figure 1 shows a screen cap of the output:
As you can see, clang
dutifully spotted the errant semicolon — a bane of all programmers. It specifically pointed out not only the line, but its assumption of what was wrong. Further, it offered a suggestion on how to avoid the warning in the future, should this condition be intentional.
Wow.
clang
was developed by Apple and Google several years back, designed to be perfectly compatible with cc
. If you’re using gcc
to compile a terminal window, switch to clang
. You can determine whether or not the system has clang
installed by typing:
clang --version
at the command prompt.