gcc的入门学习

今天主要学习了gcc的使用和开发,gccGNU项目的一部分,gcc可以对c/c++程序开发进行灵活的控制。一个c/c++程序从开始编码到生成可执行的二进制文件至少需要4个步骤: 预处理,编译,汇编,链接。通过设置不同的命令参数,gcc可以完成上述的每一步。

和大多数的shell命令一样,gcc的基本命令格式是:$gcc [选项] <文件名>,常用的选项有:-o file 将经过gcc处理过的结果存为文件file.,这个文件可能是预处理文件,汇编文件,目标文件或最终的可执行文件,而生成的可执行文件的默认名称为a.out-c 仅对文件进行编译,不进行链接。-g 在可执行文件中加入调试信息,方便进行程序的调试。-Idir 在编译源程序的时候增加一个搜索头文件的额外目录。 -w 允许产生warning类型的警告。

gcc中,不能采用shell中那种简化的写法。每一个命令选项中都要有自己的连字符”-“。在Linux下生成的可执行文件没有固定的扩展名,任何符合Linux要求的文件名,只要文件的访问属性中有可以执行的属性,该文件就可以执行。

一个比较简单的例子,编译hello.c并生成可执行文件:

  $gcc hello.c –o hello

  $./hello

   Hello gcc

 

此外,gcc还支持多个文件的编译,其中一般函数都是由函数的声明(函数头)和函数的实现(函数体)两部分构成。按此规则我们定义一个函数和主函数。

greeting.h

         #ifndef _GREETING_H

         #define _GREETING_H

         void greeting(char *name);

         #endif

                                                 greeting.c

         #include <stdio.h>

         #include “greeting.h”

         void greeting(char *name)

         {

             printf(“Hello %s/n”,name);

         }

                                              my_app.c

#include <stdio.h>

         #include “greeting.h”

         #defne NUM 10

         int main()

         {

            char name[NUM];

            printf(“Your name,please:”);

            scanf(“%s”,name);

            printf(“Your name is %s/r/n”,name);

         }

 

  若要编译并生成可执行文件:$gcc my_app.c greeting.c –o my_app.

     按照相同功能的的文件放在一个文件夹下,以利于代码的进一步重构。现将greeting,cgreeting.h两个文件放在function文件目录里。此时的gcc命令中需要增加-I 选项以便gcc搜索头文件,命令如下:

     $gcc my_app.c function/greeting.c –o my_app –Ifunction

     分别编译的命令为:

     $gcc –c my_app.c –I function

     $gcc –c function/greeting,c

     $gcc my_app.o greeting.o –o my_app

  通过分块进行编译,将一个大的项目转化为多个小的部分,提高了软件调试,维护的效率。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值