| Building C programs on Linux |
|
|
|
| Written by Administrator | |
| Tuesday, 20 September 2005 | |
|
HowTo build simple C programs on Linux 1. Introduction This document will step you though compiling and running simple C programs under the Linux operating system. It is meant as a guide for beginners who may know how to program in C but don't know how to build a C program on Linux. This document uses simple C programs to illustrate how to build the programs under Linux. It covers writing a basic C program but it is not meant as a guide to teach the language. We will also step through the basics of writing a Makefile for your project. This document also assumes that you know how to create/edit files on Linux and that you have the GNU C compiler installed. An easy way to tell if you have a C compiler installed is by issuing the command 'which gcc'. We are also assuming that the compile is executed from the command line. There are far too many GUI/IDE type environments to cover otherwise. 2. A Simple program 2.1 Writing the source The source of our first program is below: code: Save the program above and call it simplelq.c Here is the breakdown of the program above. The first line #include <stdio.h> is a preprocessor directive. This basically tells the compiler that we are using the functions that are in the stdio library. The stdio library contains all the basic functions needed for basic input and output for our program. The second line main() is a required function for every C program. main() is the starting point for the program. Like all functions the body begins with a { (open curly brace) and ends with a } (close curly brace). The body of our main function printf ("Linuxquestions.org\n"); is a function call to the printf function. printf stands for print formatted and has complex rules for printing text, numbers to specific formats. Here we are just displaying the test "Linuxquestions.org" to the screen. The \n at the end of string is a newline. It tells printf to end the line and start any additional text on the next line. All function calls in C must end in a ; 2.2 Compiling the Source The compile is done from the command line. code: gcc is the GNU C compiler. The -o option tells it what to name the output file and the simplelq.c is the source file. The output from the compiler will be a binary file called simplelq 2.3 Running the executable In order to run our sample executable we will need to apply the execute permission to the file. The we will execute it after. code: The output of our sample program produced the text "Linuxquestions.org" to the console (or screen). Try to add some more text to the sample program, recompile and watch the output. 3. Dealing with multiple sources In most projects that are more that a couple functions you will most likely want to split out the source into multiple files. Splitting the code allows the source to be more manageable by avoiding huge source files and to group like functions together. Here is an example that has multiple sources: 3.1 The source files code: code: code: 3.2 Compiling the Source The compile is done from the command line. There are a couple ways to do this. One is to compile and link in one step and the other is to build the objects separately and then link. Compile and link multiple sources in one step. code: Compile and link in multiple steps: code: The -c flag tells the compiler to compiler only and not call the linker. It is easier to build and link in one step, but if you are using Makefiles to manage your project the separate compile and link makes building much quicker. Here is a simple Makefile for building the above sources: code: Run make to build the sources: code: Here is the basic breakup of a Makefile rule: target ... : prerequisites ... command ... ... There must be a <tab> character before all the commands after a rule. Spaces instead of tabs will result in errors. 4. Suggest Links http://www.gnu.org/software/gcc/gcc.html http://www.gnu.org/manual/make/html...r/make_toc.html http://www.linuxquestions.org/questions/search.php?s= |




