About Linux FAQ

Browse More FAQs:

Howto Compiling C program and creating executable file under Linux / UNIX / *BSD

Posted by Vivek Gite [Last updated: December 9, 2007]

Q. How do I compile C program and creating executable file under Linux or UNIX operating systems?

A. You need GNU project C and C++ compiler for compiling C program and creating an executable file. Most Unix and Linux (*BSD) start their C compiler by the name cc. But you can use gcc command to compile program. First make sure you have gcc installed:

Type the following command to verify that gcc is installed:

$ which gcc
Output:

/usr/bin/gcc

Find out version of gcc:
$ gcc --version
Output:

gcc (GCC) 4.0.3 20060212 (prerelease) (Debian 4.0.2-9)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

To compile C program you need to use syntax as follows:
gcc program.c -o program-output

Consider following C program:
$ vi first.c
Type the following lines (program):

#include <stdio.h>
int main(void){
printf("My first C program\n");
return 0;
}

Compile C program first.c and create an executable file called first:
$ gcc first.c -o first
OR
$ cc first.c -o first

Execute program first:
$ ./first
Output:

My first C program

However, both FreeBSD and Linux support direct make (GNU make utility to maintain groups of programs) command on C program without writing a make file.
Remove first program using rm command:
$ rm first
$ make first

Output:

cc   first.o   -o first

Execute program first:
$ ./first
Please note that above hack works with GNU make only.

See also:

E-mail this to a friend      Printable version

Related Other Helpful FAQs:

Discussion on This FAQ

  1. Mps Says:

    Hello,

    Your c code is missing the filename of the #include directive.

  2. nixcraft Says:

    Thanks for heads up.

  3. Edan Says:

    Hi, I was just wondering how would you create an executable for numerous C programs? I am modifying the Windows Frotz interpreter for a college assignment with the aim to output the game data to a html page. The source for the interpreter contains numerous C files in a number of subdirectories. I have made the modifications but need to create the executable to see if it works properly. This is my first time creating an executable so i’m a bit unsure how to go about it. Any help would be greatly appreciated.

  4. conrad sobol Says:

    I just want to thank you. I am 57 years old and I just started computing two years ago. I have built three towers, which is no big deal; but, I have been running a lot of different systems. I want to learn c and c++ and you have helped me a lot. I am grateful for any help I can get. I usually do stuff on my own.I still wonder what the greatest difference is between BSD and Debian other than software installation. I do think that BSD is closer to being pure UNIX than Debian, but the kernels are so alike or an I wrong? It world be nice to know. Anyway, this letter is to thank you.

  5. nixcraft Says:

    Nice to see at 57, you are learning BSD and C/C++ development.

    *BSD is under BSD vs Linux is under GPL License
    Network stack

    Little change in command syntax for few utilities

    A BSD and Linux kernel are different and follows different development methods and approach.

    Please see this post along with discussion for more info.

  6. haneefa Says:

    i want a C program Compiler Code In VI editor

  7. king777 Says:

    hi, i ve installed red hat linux.and trying to compile C++ prg.but getting a err msg saying that gcc not found.then i tried to see which compiler installed on my linx.To do so i am giving cmd - which
    gcc - output is /usr/bin/which: - no gcc.

    and i am not able to compile my prog..

    plz help me in dis regard.

Leave a Reply

We encourage your comments, and suggestions. But please stay on topic, be polite, and avoid spam. Thank you very much for stopping by our site!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Tags: , , , , , , , , , , , ,

Copyright © 2006-2008 nixCraft. All rights reserved - TOS/Disclaimer - Privacy policy - Sitemap - Powered by Open source software.