C语言学习第一章--分步编译

一、编译过程

1、预处理:头文件展开、宏定义展开、条件编译、删除注释(此过程不检查语法)

头文件的展开:带#号的指令为预处理指令,如:#include<stdio.h>,预处理时会将头文件stdio.h拷贝到预处理文件中。

宏定义展开:#define PI 3.1415926  代表申明一个宏 “PI“,值为3.1515926,预处理时,用值替代代码中的宏

条件编译:# if 条件

                代码块

                #endif

当条件不成立时删除相应代码块

删除注释:预处理时删除“//”和“/*  */”注释的所有内容。

gcc -E hello.c -o hello.i  *预编译为.i为后缀的预处理文件

2、编译:将预处理文件编译为汇编文件,此过程会检查语法错误;

gcc -S hello.c -o hello.s  *编译为.s为后缀的汇编文件

3、汇编:将汇编文件编译生成二进制文件

gcc -C hello.i -o hello.o  *汇编为.o为后缀的二进制文件文件

4、链接:设置运行环境,链接其他库。生成.exe文件

gcc  hello.o -o hello.exe  *链接

相关推荐

  1. C语言学习第一--分步编译

    2024-07-13 16:16:01       18 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 16:16:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 16:16:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 16:16:01       58 阅读
  4. Python语言-面向对象

    2024-07-13 16:16:01       69 阅读

热门阅读

  1. 力扣题解( 最长数对链)

    2024-07-13 16:16:01       21 阅读
  2. 嵌入式单片机项目开发的基本思想分享

    2024-07-13 16:16:01       20 阅读
  3. uni-app 蓝牙传输

    2024-07-13 16:16:01       19 阅读
  4. termux 安装 rockylinux

    2024-07-13 16:16:01       22 阅读
  5. 阿里云通义千

    2024-07-13 16:16:01       21 阅读
  6. 前端实现PDF文件打印和下载

    2024-07-13 16:16:01       19 阅读
  7. docker 安装orcale11数据库

    2024-07-13 16:16:01       22 阅读
  8. 缓冲区共享和同步dma_buf 之二

    2024-07-13 16:16:01       20 阅读
  9. Kylin的优缺点

    2024-07-13 16:16:01       19 阅读