InuxシステムにおけるGccの基本使用
:http://zhidao.baidu.com/question/18243776.html
Linux Gcc(GNU C Compiler) GNU 、 , GNU 。gcc , 20%~30%。
Gcc C、C++ 、 、 , ,gcc a.out 。 Linux , , 。 gcc , gcc 。
.c ,C ;
.a , ;
.C,.cc .cxx , C++ ;
.h , ;
.i , C ;
.ii , C++ ;
.m , Objective-C ;
.o , ;
.s , ;
.S , 。
Gcc
Gcc C , gcc C , ∶ ( ,Preprocessing)、 (Compilation)、 (Assembly) (Linking)。
gcc cpp , , (include)、 ( define ) 。 cc1 , .o 。 , as , ,.S 、.s .o 。 ,gcc ld , 。 , , , 。
Gcc
Gcc , 。Gcc 100 , , 、 。
Gcc ∶gcc [options] [filenames]
options ,filenames 。
-c, , , .c .o , 。
-o output_filename, output_filename, 。 ,gcc a.out。
-g, (GNU gdb) , , 。
-O, 、 , , 、 , , , 、 。
-O2, -O 、 , 、 。
-Idirname, dirname , 。C ∶
A)#include
B)#include “myinc.h”
,A (< >),B (“ ”)。 A , cpp ( /usr/include) , B ,cpp , cpp, , dirname 。 , , -I 。
-Ldirname, dirname , 。 , ld ( /usr/lib) , , -L , , , , 。
-lname, , “libname.a” , -L 。 ,-lm “libm.a” 。
gcc , Linux 。
test.c C , , ∶
gcc test.c
, 、 , a.out , , 、 , 。 。
testmain.c testsub.c , , test, ∶
gcc testmain.c testsub.c □lm □o test
,-lm libm.a。
Gcc
Gcc , , 。 ,gcc , 、 , , 。gcc , 。
∶C
∶ source.c n (syntex errror)。 , C , n , 。 , ,gcc , , , C 。
∶
∶ head.h(Can not find include file head.h)。 , 、 , 。
∶
∶ , ∶
ld: -lm: No such file or directory
, 、 , find , 。
∶
∶ (Undefined symbol)。 , ∶ , 、 , , , ; , , , , ar , , gcc -l -L 。
、 , 、 , 。 , C , 。 , 、 , , , , , 、 。 , , 、 、 。 、 、 ,