linux历程--GCC程序编译

1)GCC编译器能将C、C++语言源程序、汇编语言编译、链接成可执行文件。


2)GCC通过后缀名来区分输入文件的类别:
   .c为后缀:C语言源代码文件
   .a为后缀:由目标文件构成的库文件
   .C,.cc或.cxx为后缀:C++源代码文件
   .h为后缀:头文件
   .i为后缀:已经预处理过的C源代码文件
   .ii为后缀:已经预处理过的C++源代码文件
   .o为后缀:编译后的目标文件
   .s为后缀:汇编语言源代码文件
   .S为后缀:经过预编译的汇编语言源代码


3)gcc最基本的用法:
         gcc [options] [filenames]
   options:编译所需要的编译选项
   filenames:要编译的文件名


4)基本、常用的编译选项:
    -o output_filename :确定可执行文件的名称为output_filename。如果不        给出该选项,gcc就给出预设的可执行文件a.out
    -c :只编译,不连接成可执行文件,编译器只是由输入的.c等源文件生成.
        为后缀的目标文件
    -g :产生调试工具(GNU的gdb)所必要的符号信息,要想对编译出的程序
        行调试,就必须加入这个选项
    -O :对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、链
        接过程中进行优化处理。这样产生的可执行文件的执行效率可以提高,
        但是编译、链接速度就相应变慢
    -O2 :比-O更好的优化编译、链接,当然编译、链接过程更慢。注意,可测
        试运行可执行文件的运行时间,要显示运行时间是在执行命令前加tim
        即可,如: time ./a.out   表示运行a.out,同时显示运行时间
    -Idirname :将dirname所指出的目录加入到程序头文件目录列表中。例:
           gcc foo.c -I/home/include -o foo
    -Ldirname :将dirname所指出的目录加入到库文件的目录列表中。在默认状
        态下,链接程序ld在系统的预设路径中(如/usr/lib)寻找所需要的库文
        件,这个选项告诉链接程序,首先到-L指定的目录中去寻找,然后再到
        系统预设路径中寻找
    -lname :在链接时,装载名字为“libname.a”的函数库,该函数库位于系        统预设的目录或者由-L选项确定的目录下,例如,-lm表示链接名为
     “libm.a”的数学函数库。例:
             gcc foo.c -L/home/lib -lfoo -o foo
    -static :静态链接库文件,如:  gcc -static hello.c -o hello。库
      动态与静态两种,动态库常用.so为后缀,静态用.a为后缀。linux下进
      链接的缺省操作是首先链接动态库。
    -Wall :生成所有警告信息
    -w :不生成任何警告信息
    -DMACRO :定义MACRO宏,等效于程序中使用#define MACRO
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值