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
相关推荐
吾诺2 分钟前
如何在Linux中找到MySQL的安装目录
linux·运维·mysql
lijwsunyt4 分钟前
Ubuntu虚拟机部署OpenClaw全踩坑实录|本地访问+模型配置一站式解决
linux·运维·ubuntu
悲伤小伞11 分钟前
10-MySQL_事务管理
linux·数据库·c++·mysql·centos
朱一头zcy18 分钟前
Linux系列04:简单理解inode、硬链接、软链接、挂载的概念
linux·笔记
郭庆汝32 分钟前
Ubuntu安装Node.js
linux·ubuntu·node.js
我去流水了35 分钟前
【独家免费】【亲测】在linux下嵌入式linux的web http服务【Get、Post】,移植mongoose,post上传文件
linux·运维·前端
无籽西瓜a35 分钟前
Linux 文件权限与 chmod 详解
linux·服务器·后端
攻城狮在此38 分钟前
Rufus使用教程:Windows/Linux 系统启动盘制作
linux·服务器·windows
尽兴-42 分钟前
Elasticsearch 8.14.3 安装部署实战:Windows/Linux + Kibana + 常用插件
linux·windows·elasticsearch·kinana·es 浏览器插件
DARLING Zero two♡1 小时前
CentOS 部署 Teemii:打造专属私人漫画阅读库
linux·运维·centos