GCC实用干货

GCC实用干货

1.GCC

  • 编译C语言用gcc,编译C++用g++

  • 文件类型及后缀

    • 原代码:test.c 、test.cpp

    • 预处理后的代码:test.i

    • 汇编代码:test.s

    • 二进制文件:test.o

      (可执行文件:.out 、.exe)

    • 核心关系:通过编译,成为汇编代码,再通过汇编,成为二进制文件

  • 文件之间的关系和它们的指令(不要死记硬背)

    • gcc test.c :生成 默认的可执行文件a.out
    • gcc test.c -o abc :生成 名为 abc 的可执行文件
    • gcc test.c -E -o test.i:生成 名为 test.i 的预处理文件
    • gcc test.i -S -o test.s:生成 名为 test.s的汇编文件
    • gcc test.s -c -o test.o:生成 名为 test.o的二进制文件
    • gcc test.s -s -o test.o:生成吗名为test.o的二进制文件并链接,及生成名为test.o的可执行文件
    • gcc test.c -c -o test.o:可以直接从原代码变成可执行文件,中间过程都是可以跳跃的(直接跨到可执行文件的话,-c也可省略)
    • 补充:
      • gcc test.c -Wall:生成警告信息
      • gcc test.c -On:n为(0,1,2,3),表示不同等级的优化,主要为了防止反汇编(O1是默认等级)
      • gcc test.c -std=99:表示编译C语言的版本为C99
相关推荐
蓝天居士4 分钟前
Linux实用功能代码集(4) —— 线程间消息队列(2)
linux
Name_NaN_None20 分钟前
Linux 使用 Remmina 连接 Windows 远程桌面 ——「小白教程」
linux·网络·电脑·远程工作
shepherd11121 分钟前
别再无脑 cat 了!后端排查 GB 级生产日志的实战命令
linux·后端
剪刀石头布Cheers38 分钟前
Ubuntu安装向日葵远程黑屏
linux·运维·ubuntu
Vect__1 小时前
基于CSAPP深刻理解编译链接过程
linux·c++
123过去1 小时前
reaver使用教程
linux·网络·测试工具·智能路由器
blog.pytool.com1 小时前
Ubuntu 22.04 解决 Qt 报错:Unknown module (s) in QT: qml quick
linux·qt·ubuntu
MarkHD1 小时前
RPA工程化实践:三种核心设计模式让复杂流程优雅可控
linux·设计模式·rpa
就是个名称1 小时前
echart绘制天顶图
linux·前端·javascript
x-cmd2 小时前
[260326] x-cmd v0.8.10:跨 Shell 统一配置命令短名;自动装好依赖运行 WhisperLiveKit 实时语音转写
linux·人工智能·ai·whisper·shortcut·x-cmd