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
相关推荐
大Null1 天前
Linux安装GO环境
linux·golang
LCG元1 天前
Linux 网络调试神器:tcpdump 和 Wireshark 抓包分析实战
linux
QT 小鲜肉1 天前
【C++基础与提高】第十一章:面向对象编程进阶——继承与多态
java·linux·开发语言·c++·笔记·qt
序属秋秋秋1 天前
《Linux系统编程之进程基础》【进程入门】
linux·运维·c语言·c++·进程·系统编程·fork
橘子真甜~1 天前
C/C++ Linux网络编程4 - 解决TCP服务器并发的方式
linux·运维·服务器
last demo1 天前
Linux 逻辑卷管理
linux·运维·服务器
ll_god1 天前
ubuntu:beyond compare 4 This license key has been revoked 解决办法
linux·运维·ubuntu
网硕互联的小客服1 天前
如何解决 Linux 文件系统挂载失败的问题?
linux·服务器·前端·网络·chrome
大聪明-PLUS1 天前
如何使用 Docker 打包一个简单的应用程序:简易指南
linux·嵌入式·arm·smarc
serve the people1 天前
Prompts for Chat Models in LangChain
java·linux·langchain