超算小站 超算小站
首页
手册
  • 集群软件环境:

    • 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问题
Linux使用
归档
关于我
🚀试用
首页
手册
  • 集群软件环境:

    • 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问题
Linux使用
归档
关于我
🚀试用
  • 编译环境

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

    • fftw 编译安装教程
    • PETSc 编译安装教程
  • 应用软件

    • alamode 编译安装教程
    • ANGSD 编译安装教程
    • BEAST安装使用教程
    • BerkeleyGW-2.1 安装教程
    • COMSOL安装教程
    • CP2K编译安装教程
    • gromacs编译安装教程
    • jfeff安装说明
    • LAMMPS编译安装教程
    • MIgcm编译安装教程
    • MOLPRO安装使用说明
    • nciplot安装说明
    • ovito安装说明(windows+linux)
    • swash编译安装教程
    • UV-CDAT 安装教程
    • VASP编译安装教程
    • 如何使用WRF
  • 工具软件

    • citrix 安装记录及报错记录
    • 如何使用TACC launcher来批量提交串行任务
    • slurm作业管理系统怎么用?
    • Collectl在天河系统上的使用
    • WinSCP软件使用简介(支持断点续传)
  • 常用语言环境

    • Co-Array Fortran 使用说明
    • Anaconda 安装教程
    • python扩展包的安装方法(pip)
    • python扩展包的安装方法
    • python扩展包的安装方法 --- conda本地源使用说明
    • 使用代理配置天河系统python环境
    • R编译安装教程
    • R语言包的安装教程
  • 使用进阶

    • 如何在lammps里加入新的势函数形式?
    • Materials Studio 任务提交脚本详解
    • 如何在ARM平台编译NAMD
    • VASP 固定晶胞方向不优化
    • 设置编辑器语法高亮支持NCL
    • 青索客户端
  • 软件中心
  • 编译环境
郑刚
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编译安装教程→

最近更新
01
Linux使用:screen
12-21
02
不同系统账号之间相互共享数据
12-21
03
多用户使用同一账号SSH时的自动登陆配置
07-04
更多文章>
Theme by Vdoing | Copyright © 2015-2022 Zheng Gang | MIT License | 津ICP备2021008634号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×