Ask a Question

How is a C program compiled? How is linking done?


Sourav

on 2010-09-22 09:30:00  

There are many C compilers around. The cc being the default Sun compiler. The GNU C compiler gcc is popular and available for many platforms. PC users may also be familiar with the Borland bcc compiler. There are also equivalent C++ compilers which are usually denoted by CC (note upper case CC. For example Sun provides CC and GNU GCC. The GNU compiler is also denoted by g++ Other (less common) C/C++ compilers exist. All the above compilers operate in essentially the same manner and share many common command line options. Below is the list and give example uses many of the common compiler options. However, the best source of each compiler is through the online manual pages of your system: e.g. man cc. For the sake of compactness in the basic discussions of compiler operation we will simply refer to the cc compiler -- other compilers can simply be substituted in place of cc unless otherwise stated. To Compile your program simply invoke the command cc. The command must be followed by the name of the (C) program you wish to compile. A number of compiler options can be specified also. We will not concern ourselves with many of these options yet, some useful and often essential options are introduced below Thus, the basic compilation command is: cc program.c where program.c is the name of the file. If there are obvious errors in your program (such as mistypings, misspelling one of the key words or omitting a semi-colon), the compiler will detect and report them. There may, of course, still be logical errors that the compiler cannot detect. You may be telling the computer to do the wrong operations. When the compiler has successfully digested your program, the compiled version, or executable, is left in a file called a.out or if the compiler option -o is used : the file listed after the -o. It is more convenient to use a -o and filename in the compilation as in cc -o program program.c which puts the compiled program into the file program (or any file you name following the \"-o\" argument) instead of putting it in the file a.out .