Linux编译器GCC的使用

Linux编译器GCC的使用

  1. 编译流程的四个步骤
    预处理
    编译
    汇编
    链接
    hello.c 预处理—> hello.i 编译—> hello.s 汇编—> hello.o 链接—> hello
  2. GCC编译流程
    gcc [optio | filename]
    option:
    -E:可以使编译器在预处理结束时就停止编译。
    -o:指的是目标文件。
    -S:可以使编译器完成编译时就停止。
    -c:汇编阶段
    gcc -E -o a.i a.c(预处理)
    gcc -S -o a.s a.i(编译)
    gcc -c a.s -o a.o(汇编)
    gcc a.o -o a(链接)
  3. GCC警告提示
    主要分为两类:-Wall类警告、非-Wall类警告
    -Wall类警告:主要如下
    -Wall:打开所有类型语法警告
    非-Wall类警告:主要两个如下
    -ansi:该选项强制GCC生成标准语法要求的警告信息。
    -pedantic:该选项允许发出ANSI C标准所列出的全部警告信息。
  4. GCC使用函数库
    Linux中函数库包括两类:静态库和共享库
    静态库的代码在编译时就已经连接到开发人员开发的应用程序中(后缀名.a),而共享库是在程序开始运行时被加载(后缀名.so和版本号)。
    加路径:
    -I<目录>:在头文件的搜索列表中添加***目录,这样,GCC就会到指定的目录去查找相应的头文件。(eg:gcc hello.c -I/root/workplace/gcc/ -o hello)路径名中不包括文件名
    在include语句中,<>表示在标准路径中搜索头文件,在Linux中默认为/usr/include,
    -L<目录>:用于指明库文件的路径。假如程序需要用到目录/root/workplace/gcc/lib(eg:gcc hello.c -L/root/workplace/gcc/lib -lsunq -o hello)路径名中不包括文件名。
    使用不同链接库,库名相同的静态库文件和共享库文件,链接时调用共享库,linux默认采用非动态链接的方式。(-l小写的L)
    -static -l:连接同名静态库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值