Linux下文件的编译

本文详细介绍了GCC编译器的工作流程,包括预处理、编译、汇编和链接四个阶段,并列举了gcc命令常用参数,如-E、-S、-c、-o等,用于查看预处理结果、生成汇编代码、创建目标文件及设定输出文件名。此外,还讲解了如何通过-I指定头文件路径,-l引用库文件,以及-Wall和-Werror选项来提高代码质量。
摘要由CSDN通过智能技术生成

一、文件的编译
    gcc 文件名

  c文件类型
    .h ——头文件
    .h.——gch 头文件的编译结果,与头文件同时存在时,会被优先使用
    .c ——源文件
    .i ——预处理文件
    .s ——汇编文件
    .o ——目标文件
    .so ——共享库
    .a ——静态库

二、编译器
  负责把人能看懂的用代码记录的文本文件,翻译成计算机能看懂的二进制文件
  由预处理器、编译器、链接器
  gcc是由gnu社区为了编译Linux内核代码而开发一款免费的编译器,默认采用c89编译语法
  -std=gnu99 可以设置为C99语法

1、gcc code.c  -> a.out(默认可执行文件名)
    常用参数:
        -E 显示出预处理结果
        -S 生成汇编代码
        -c 只编译不链接
        -o 设置编译结果的名字
        -std= 设置编译语法
        -I(大写i) 路径  指定头文件的加载路径  
        -l 指定要使用的库文件  例: -lm
        -Wall  更严格地检查代码,尽可能多地产生警告
        -Werror  把警告当错误处理

2、 c代码源文件变成可执行文件的过程:
    预处理:把源文件翻译成预处理文件
        gcc -E code.c   把预处理结果打印到终端
        gcc -E code.c -o code.i 生成以.i结尾的预处理文件
    编译:把预处理文件翻译成汇编代码
        gcc -S code.i 生成以.s 结尾的汇编文件
    汇编:把汇编文件翻译成二进制的目标文件
        gcc -c code.s  生成以.o 结尾的目标文件
    链接:把若干个目标文件合并生成一个可执行文件
        gcc a.o b.o ……  默认生成a.out 可执行文件
        gcc a.o b.o …… -o newname 指定生成别名的可执行文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值