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
相关推荐
Xiezequan8 分钟前
c语言进程直接的管道
linux
对许12 分钟前
Linux计算时间差
linux
晓纪同学1 小时前
图漾相机-ROS1_SDK_ubuntu版本编译(新版本)
linux·数码相机·ubuntu
Allen Bright1 小时前
Linux中的mv命令深入分析
linux·运维·服务器
ken22321 小时前
linux ibus rime 中文输入法,快速设置为:默认简体 (****)
linux
基哥的奋斗历程2 小时前
解决Linux 虚拟机网段与虚拟机配置网段不一致
linux·运维·服务器
Cachel wood2 小时前
Vue.js前端框架教程5:Vue数据拷贝和数组函数
linux·前端·vue.js·python·阿里云·前端框架·云计算
我们的五年3 小时前
【Linux课程学习】:第二十一弹---深入理解信号(中断,信号,kill,abort,raise,larm函数)
linux·服务器·后端·深度学习·ubuntu·机器学习
葟雪儿3 小时前
海思芯片 交叉编译curl
linux·运维·服务器·开发语言·c++·嵌入式硬件
Cachel wood4 小时前
Vue.js前端框架教程2:Vue路由和状态管理库Pinia
java·linux·服务器·前端·vue.js·前端框架·github