`
忧里修斯
  • 浏览: 437120 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

c编译过程

阅读更多
一个完整的C代码编译可分为4步:
如:一个简单的C代码hello.c
#include<stdio.h>                             
#include <stdlib.h>
int main(int argc,char *argv[]){
    printf("Hello\n");
    exit(0);
}

1、预处理阶段
将头文件等编译进来,查看hello.i可知,gcc编译命令为:
gcc -E hello.c -o hello.i

2、编译阶段
gcc首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,Gcc 把代码翻译成汇编语言。gcc编译命令为:
gcc -S hello.i -o hello.s


3、汇编阶段
汇编阶段是把编译阶段生成的“.s”文件转成目标文件,即二进制代码。gcc编译命令为:
gcc -c hello.s -o hello.o


4、链接阶段
链接函数库,gcc编译命令为:
gcc hello.o -o hello


编译选项说明:
(1)"-I dir"选项可以在头文件的搜索路径列表中添加dir目录,如:
gcc hello.c –I /root/workplace/Gcc/ -o hello

(2)"-L dir"选项能够在库文件的搜索路径列表中添加dir目录,如:
gcc hello.c –L /root/workplace/Gcc/lib –lsunq –o hello

gcc编译时会在/root/workplace/Gcc/lib目录下找libsunq.so库
(3)在include语句中,“<>”表示在标准路径中搜索头文件,“""”表示在本目录中搜索。
分享到:
评论

相关推荐

    c语言编译过程详解.docx

    c语言编译过程详解.docx ,c语言编译过程详解.docx

    c语言编译全过程

    预处理阶段是C语言编译过程的第一步,它主要负责处理源代码中的预处理器指令。这些指令以`#`开头,用于指示预处理器进行相应的操作。 - **宏定义**:通过`#define`来定义宏,可以为标识符指定一个字符串替换值。...

    C语言编译全过程

    ### C语言编译全过程详解 #### 一、概述 C语言是一种广泛使用的编程语言,它提供了高效的性能和灵活的控制机制。C语言程序从源代码到可执行程序的转变过程称为编译链接过程。这一过程包括编译和链接两个主要阶段,...

    C语言编译过程

    编译的概念:编译程序读取源程序(字符流),对之进行词法和... 编译的完整过程:C源程序--&gt;预编译处理(.c)--&gt;编译、优化程序(.s、.asm)--&gt;汇编程序(.obj、.o、.a、.ko)--&gt;链接程序(.exe、.elf、.axf等)

    C语言编译全过程剖析

    C语言编译过程大致分为四个主要阶段: 1. **预编译**: - 预编译程序处理源代码中的伪指令,例如宏定义(#define)、条件编译指令(如#ifdef)、头文件包含(#include)和特殊符号。宏定义用于文本替换,条件编译...

    c语言编译过程想详解

    详细讲解c语言的编译过程,并附有图解 很好的资料

    C语言编译过程总结详解

    C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作...

    C 编译过程xmind

    C 编译过程C

    C语言编译全过程.pdf

    编译预处理是C语言编译过程的第一步,主要涉及对源代码中的一些预处理指令进行处理。这些指令以`#`字符开头,常见的预处理指令包括宏定义、条件编译、头文件包含以及特殊符号处理等。 ##### 2.1 宏定义 宏定义允许...

    (C语言编译连接过程

    在深入探讨C语言的编译连接过程之前,我们先来明确这一流程的重要性。编译连接过程是将人类可读的源代码转换为计算机能够执行的机器语言的关键步骤,它不仅涉及语法检查、优化,还涉及到多个文件的整合,确保程序...

    C语言编译全过程介绍

    整个编译过程主要分为编译和链接两个阶段。 1. **编译过程** 编译过程可以进一步细分为编译预处理和编译/优化两个阶段。 1.1. **编译预处理** 预处理阶段首先处理源代码中的伪指令和特殊符号。具体包括: - **...

    C语言笔试之编译相关试题

    1. **预处理**:预处理(Preprocessing)是C语言编译过程的第一步,它主要处理以`#`开头的指令,例如`#include`、`#define`和`#if`等。预处理器会将`#include`指令替换为所包含文件的内容,`#define`用来定义宏,`#...

    turboc2 c语言编译模拟器

    【标题】:“Turboc2 C语言编译模拟器”是一款经典的C语言开发工具,它集成了编译器和模拟器功能,为程序员提供了一个高效、便捷的编程环境。Turbo C 2.0是Borland公司推出的一个早期版本,它在当时因其轻量级、快速...

    程序员考试c语言的编译过程

    C语言的编译过程是将源代码转换成可执行程序的关键步骤,这一过程涉及多个阶段,包括预处理、编译、优化、汇编和链接。下面详细解释这些步骤: 1. **预处理**: 预处理是编译过程的第一步,由预处理器cpp执行。它...

    C语言编译过程中的错误分析

    C语言编译过程中的错误分析 C语言编译过程中的错误分析是C语言学习中非常重要的一部分。通过对C语言的学习和实践,人们会积累一些常见的错误,这些错误可能会导致编译错误、运行错误或逻辑错误等问题。本文将总结...

    C语言函数与编译预处理

    编译预处理是C语言编译过程中的一个重要步骤。在编译之前,预处理器会将源代码中的宏定义、include 语句和条件编译指令替换为实际的代码。预处理器还可以处理多文件程序,生成目标代码。 四、实验内容 实验内容...

Global site tag (gtag.js) - Google Analytics