Mr.ZhengGang's blog Mr.ZhengGang's blog
首页
  • 天河一号
  • 01.编译环境
  • 02.基础库
  • 03.应用软件
  • 04.工具软件
  • 05.常用语言环境
  • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
💖联系
🚀试用
GitHub (opens new window)
首页
  • 天河一号
  • 01.编译环境
  • 02.基础库
  • 03.应用软件
  • 04.工具软件
  • 05.常用语言环境
  • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
💖联系
🚀试用
GitHub (opens new window)
  • 编译环境

    • 编译入门
      • 编译
      • 编译器
      • 编译过程
      • 举例
    • gcc
  • 基础库

    • fftw
    • petsc
  • 应用软件

    • alamode
    • angsd
    • beast
    • berkeleygw
    • comsol
    • cp2k
    • gromacs
    • jfeff
    • lammps
    • mitgcm
    • molpro
    • nciplot
    • ovito
    • swash
    • uv-cdat
    • vasp
    • wrf
  • 工具软件

    • citrix
    • tacc-launcher
    • slurm
    • collectl
    • winscp
  • 常用语言环境

    • Co-Array Fortran 使用说明
    • python集成环境anaconda
    • python扩展包安装(pip方式)
    • python扩展包安装
    • python扩展包安装(conda方式)
    • R编译安装
    • R扩展包安装
  • 使用进阶

    • lammps添加自定义势函数
    • MaterialsStudio任务提交脚本详解
    • namd在ARM平台安装
    • vasp固定晶胞方向不优化
    • 设置编辑器语法高亮支持NCL
  • 软件中心
  • 编译环境
ZhengGang
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 © 2018-2020 Zheng Gang | MIT License | 津ICP备17007036号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式