Firefly Open Source Community

Title: Using GCC compile your code in Linux environment [Print This Page]

Author: Andy    Time: 12/19/2014 15:09
Title: Using GCC compile your code in Linux environment

As a beginner on programming, it¡¯s better to use GCC to compile the program. Then you can know more about the

process of a program compile and link. I advice you to using vi/vim to edit the code.

GCC provide so many command option. However, you don¡¯t have to learn all the option. As a beginner, you only need

to be familiar with several option. Then you can begin to write your program.

1. Common compiler command options

For example, the source file is test.c

(1). Compile and link with no option

  1. <font color="rgb(88, 88, 88)"><font face="Arial, Helvetica, sans-serif"><font style="font-size: 13px">#gcc test.c</font></font></font>
Copy the code


Function: pretreatment, assemble, compile and link to an executable program.There is no output specified. ¡°a.out¡± is

the default output file. After compiling successfully ,there will be a new file ¡°a.out¡± in the current path. You can execute

the command to run the program.

  1. <font color="rgb(88, 88, 88)"><font face="Arial, Helvetica, sans-serif"><font style="font-size: 13px">#./a.out</font></font></font>
Copy the code

(2). Option -o

  1. <font color="rgb(88, 88, 88)"><font face="Arial, Helvetica, sans-serif"><font style="font-size: 13px">#gcc test.c -o test</font></font></font>
Copy the code


Function: pretreatment, assemble, compile and link to an executable program. The ¡°-o¡± option is used to specify

the output file. After compiling successfully , there will be a new file ¡°test¡± in the current path. You can execute the

command to run the program.

  1. #./test
Copy the code

(3). Option -E

  1. #gcc -E test.c -o test.i
Copy the code

Fuction: pretreatment the ¡°test.c¡± and assemble to ¡°test.s¡±.


(5). Option -c

  1. #gcc -c test.s
Copy the code

Function: compile the ¡°test.s¡± to ¡°test.o¡±


(6). Option -o

  1. #gcc test.o -o test
Copy the code

Function: link ¡°test.o¡± to ¡°test¡±


(7). Option -O

  1. #gcc -O1 test.c -o test
Copy the code

Using the level 1 to compile the file. The levels are 1 to 3. Higher level with


(8). Compile the C++ program file using the std libs..

  1. #gcc test.cpp -o test -lstdc++
Copy the code

Function: compile the test.cpp and link to test execute file. -lstdc++ means the std libs.


2. Compile more than one files.

If you want to compile more than one files. You can do it as the follow ways:

For example, you are going to compile these two files test.c and testfun.c

(1). Compile all files at once.

  1. #gcc testfunc.c test.c -o test
Copy the code

Function: compile the testfun.c and test.c, link to an executive file.


(2). Compile the files respectively and link them to an output file.

  1. #gcc -c testfun.c //compile testfun.c to testfun.o
  2. #gcc -c test.c //compile test.c to test.o
  3. #gcc -o testfun.o test.o -o test // link testfun.o and test.o to test file.
Copy the code

Comparing the two ways above, the fist way need to compile all files at every compile. The second way just compile

the files that have been modified, so it don¡¯t have to compile all files at every compile.



Author: BS42    Time: 12/27/2014 17:16

"test" is a bad name for an application on *nix, since there is mostly already a program called "test"-







Welcome Firefly Open Source Community (https://bbs.t-firefly.com/) Powered by Discuz! X3.1