计算机系统学习笔记——gcc和gdb

文章目录

  • Shell命令学习笔记之gcc
    • gcc的一些基本用法
    • 关于文件编译的基本过程gcc分步实现

Shell命令学习笔记之gcc

gcc的一些基本用法

gcc main.c 会默认生成一个a.out的可执行文件

gcc main.c -o 会产生一个 hello 可执行文件

gcc main.c -o xxx 会产生一个 xxx 可执行文件

关于文件编译的基本过程gcc分步实现

详细过程可以分为四步:可以手动进行这四个步骤:

第一步:预处理。#号开头的代码全被解决掉(预编译,包含库,宏定义等等),产生一个后缀.i的文件以便下一步使用。

            gcc -E main.c    (不会产生.i文件)

            gcc -E main.c >> main.i

第二步:编译。 产生一个后缀.s的文件(汇编文件)

            gcc -S main.i     (大写字母S)

第三步:汇编。产生后缀.o的object目标文件

            gcc -c hello.s

第四步:链接。 产生一个后缀.o的可执行文件

            gcc hello.o -o hello

补充: 若要32位编译
gcc -m32 要编译的文件名 生成的.o文件名

要用gdb调试的话加 -g
反汇编指令 objdump -D xx.c > 文件名
gcc -Og -no-pie -fno-PIC 源.c -o 生成名
-O是优化级别

-------gdb

计算机系统学习笔记——gcc和gdb_第1张图片

你可能感兴趣的:(大学时光)