当前位置: 首页 > ai >正文

【GCC】gcc编译学习

文章目录

  • 1. 过程
  • 2. 常用命令选项
  • 3. 多个源文件编译
  • 参考内容

1. 过程

step1 : 预处理,生成.i文件(预处理器cpp)

gcc -E [源文件] -o [生成的.i文件]
gcc -E test.c -o test.i

step2 : 汇编,将预处理后的文件转换为汇编语言生成.s文件(编译器egcs)

gcc -S test.i -o test.s

step3 : 编译,生成目标文件.o文件(汇编器as)

gcc -c test.s -o test.o

step4 : 链接,链接目标代码,生成可执行程序(链接器ld)

gcc test.o -o test

步骤简化:

# 一步走
gcc -o test test.c
# 两步走
gcc -c test.c -o test.o
gcc test.o -o test

2. 常用命令选项

-E : 仅激活预处理
-S : 仅激活预处理和变异,把源文件编译为汇编代码文件
-c : 仅编译,不链接为可执行文件。编译器将输入的.c文件生成.o目标文件,通常用于编译不包含主程序的子程序文件
-C : 预处理的时候不删除注释信息,一般和-E使用,一般分析程序的时候使用
-o : 后接输出文件,输出文件不能和源文件同名
-g : 产生gdb所必须的符号信息用于调试
-O : 对程序进行优化编译、链接
-O2 : 比-O更好的优化编译、链接
-Wall : 输出所有告警信息
-w : 关闭所有告警信息
-Idirname : 将名为dirname的目录加入到程序头文件目录列表中,它是在预处理阶段使用的选项,I指include
-Ldirname : 将名为dirname的目录加入到程序的库文件搜索目录列表中,它是在链接过程中使用的参数
-lname : 指编译器在链接时,装载名为libname.a的函数库,该函数库位于系统预定义的目录或由-L选项指定的目录下

3. 多个源文件编译

方法1:多个文件一起编译

# 将test1.c和test2.c分别编译后,链接生成test可执行文件
gcc test1.c test2.c -o test

方法2:分别编译各个源文件,然后对编译后得到的目标文件进行链接

gcc -c test1.c
gcc -c test2.c
gcc -o test1.o test2.o -o test # 链接

对于方法1,当有文件修改时,编译时需要将所有的文件重新编译;方法2仅需重新编译修改的文件,未修改的文件不用重新编译

参考内容

Linux下详解gcc编译过程(含代码示例)&& gcc使用教程_gcc编译命令-CSDN博客

http://www.xdnf.cn/news/529.html

相关文章:

  • 指令与权限
  • RK | rk3568开发与学习
  • PrintWriter 类详解
  • liunx日志问题
  • CUDA Tools 常用命令总结与记录 (需要细化)
  • 路由引入、路由过滤及路由策略
  • C++ 用哈希表封装unordered_set/unordered_map
  • Linux进程概念
  • Day95 | 灵神 | 二叉树 二叉树的垂序遍历
  • U-Boot(Universal Bootloader)简介
  • 不带无线网卡的Linux开发板上网方法
  • 英文论文写作:常用AI工具与【新秀笔目鱼】
  • JAVA的泛型
  • jQuery — 动画和事件
  • SpringBoot学习(过滤器Filter。拦截器Interceptor。全局异常捕获处理器GlobalExceptionHandler)(详细使用教程)
  • 哲学家就餐问题(避免死锁)
  • BootStrap:进阶使用(其二)
  • 计算机网络 实验五 RIP的配置与应用
  • 序列化和反序列化
  • 第9期:文本条件生成(CLIP + Diffusion)详解
  • 基于 Python 的自然语言处理系列(82):Transformer Reinforcement Learning
  • Alan AI - 面向Web的生成式AI SDK
  • 基于C语言实现文件读取
  • Linux 第五讲 --- 权限管理
  • 6.常用控件-QWidget|windowTitle|windowIcon|qrc机制|windowOpacity|cursor(C++)
  • Amlogic S905L3 系列对比:L3A、L3B 与 L3AB 深度解析
  • Unity之如何实现RenderStreaming视频推流
  • 大学英语四级选词填空阅读题和段落匹配解析
  • 【Hot100】54. 螺旋矩阵
  • 2025.04.19-阿里淘天春招算法岗笔试-第一题