超算小站 超算小站
首页
  • 注册账号
  • 登录系统
  • 熟悉系统
  • 配置环境
  • 数据管理
  • 作业管理
  • 集群软件环境:

    • 01.编译环境
    • 02.基础库
    • 03.应用软件
    • 04.工具软件
    • 05.常用语言环境
    • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
HPC&AI
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
资料下载
归档
关于我
🚀试用
首页
  • 注册账号
  • 登录系统
  • 熟悉系统
  • 配置环境
  • 数据管理
  • 作业管理
  • 集群软件环境:

    • 01.编译环境
    • 02.基础库
    • 03.应用软件
    • 04.工具软件
    • 05.常用语言环境
    • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
HPC&AI
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
资料下载
归档
关于我
🚀试用
  • 编译环境

    • 编译程序的四个过程简介
      • 编译
      • 编译器
      • 编译过程
      • 举例
    • gcc编译安装教程
  • 基础库

  • 应用软件

  • 工具软件

  • 常用语言环境

  • 使用进阶

  • 软件中心
  • 编译环境
mrzhenggang
2017-12-08
目录

编译程序的四个过程简介

简要介绍编译、编译器和编译过程

# 编译

将人类比较容易理解的高级语言(例如C/C++,FORTRAN等),“翻译”为,计算机能够识别的二进制语言。

# 编译器

编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。

# 编译过程

  1. 预处理
  2. 编译
  3. 汇编
  4. 链接

# 举例

编写源代码hello.c:

#include <stdio.h>
int main()
{
printf("hello, world\n");
}
1
2
3
4
5

详细过程: 将源代码hello.c,通过预处理器cpp,生成预处理后的中间文件hello.i(还是源码语言)

gcc -E hello.c -o hello.i
1

将预处理后的文件hello.i,通过编译器cc1,生成汇编文件hello.s(汇编语言)

gcc -S hello.i -o hello.s
1

将汇编文件hello.s,通过汇编器as,生成目标文件hello.o(二进制语言)

gcc -c hello.s -o hello.o
1

将目标文件,通过链接器ld,链接成一个可执行的文件hello

gcc hello.o -o hello
1

一般情况下,gcc会替我们做这些事儿。直接输入下面的命令,就能自动完成一些列操作了

gcc -o hello hello.cpp
1
gcc编译安装教程

gcc编译安装教程→

Theme by Vdoing | Copyright © 2015-2024 Zheng Gang | MIT License | 津ICP备2021008634号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×