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
相关推荐
JiaWen技术圈2 分钟前
nftables 添加规则时支持的匹配条件与语句全解
linux·服务器
V我五十买鸡腿4 分钟前
网安基础 Windows 和 Linux 那些常用命令
linux·运维·windows
ShineWinsu9 分钟前
对于Linux:进程间通信IPC(匿名管道)的解析
linux·c++·面试·进程·通信·管道·ipc
handler0118 分钟前
进程状态流转的本质:Linux 内核队列与底层数据结构解密
linux·运维·c语言·数据结构·c++·笔记·学习
freshman_y22 分钟前
Linux开发中DTS和/proc/device-tree讲解
linux·嵌入式
wang090742 分钟前
Linux性能优化之文件系统基础介绍
java·linux·性能优化
F_D_Z43 分钟前
【解决办法】Claude报错Unable to connect to Anthropic services无法连接Anthropic
linux·服务器·claude·anthropic
蜡笔婧萱1 小时前
Linux--RHCE关于at和crond的第一次应用
linux·运维·服务器
hjjdebug1 小时前
制作ubuntu usb安装盘 (用dd 命令)
linux·u盘·安装盘
小程同学>o<1 小时前
Linux 应用层开发入门(二十五)| 网络编程
linux·网络·嵌入式软件·嵌入式应用层·应用层开发·linux应用层开发