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
相关推荐
ai安歌14 分钟前
鸿蒙PC:Linux 搭建 Rust 开发环境并实现计算器项目
linux·rust·harmonyos
fan_music14 分钟前
后端学习链接
linux
biter down29 分钟前
4:Ubuntu 22.04 安装完成后的收尾与优化
linux·运维·ubuntu
凡人叶枫33 分钟前
Effective C++ 条款37:绝不重新定义继承而来的缺省参数值
linux·c++·windows
zhangfeng113337 分钟前
国家超算中心 昆山站 异构加速卡1 显存16GB详细配置, 海光 Z100SM HCU
linux·网络·深度学习·c#
悠悠121381 小时前
Linux 7.1 来了:新 NTFS 驱动、干掉 i486、FRED 默认开启,这次更新有点东西
linux·运维·服务器
用户805533698031 小时前
Linux 工作队列:把中断里做不了的事推迟到进程上下文
linux·嵌入式
pingglala1 小时前
winscp连接linux失败解决方法
java·linux·服务器
William.csj1 小时前
Linux——普通用户离线源码编译 gcc-9 方法和调用教程
linux·服务器·gcc
做一个快乐的小傻瓜1 小时前
ZYNQ DEV套件引脚约束
java·linux·运维