前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c++ hello world

c++ hello world

作者头像
Zkeq
发布2022-05-18 15:17:23
2040
发布2022-05-18 15:17:23
举报
文章被收录于专栏:Zkeq

c语言的编译步骤

代码语言:javascript
复制
gcc 编译  hello.c -o 生成的目标(可执行文件)名字为 world

预处理
代码语言:javascript
复制
gcc -E hello.c -o hello.i

带#的语句就是预处理指令,预处理指令在预处理的时候处理了

  • 头文件展开: #include <stdio.h> 包含文件stdio.h预处理时将stdio.h 文件拷贝至预处理文件中
  • 删除注释: 注释有两种方法: // /* */
  • 宏替换: #define 代表是声明一个宏,在预处理时会将宏给替代 (预处理的时候就会替换)
  • 预处理时 不会检查语法错误
  • 条件编译: 条件不成立: #if 0 -> #endif 条件成立 #if 1 -> #endif
    • c语言中 0表示不成立 1表示成立
  • 宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法
编译
代码语言:javascript
复制
gcc -S hello.i -o hello.s
  • 预处理文件编译生成汇编文件 检查语法错误
  • 检查语法,将预处理后文件编译生成汇编文件
汇编
代码语言:javascript
复制
gcc -c hello.s -o hello.o
  • 汇编文件编译生成二进制文件.o
  • 将汇编文件生成目标文件(二进制文件)
链接
代码语言:javascript
复制
gcc    hello.o -o hello

  • 设置运行环境堆栈等,链接其他库
  • C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去
1
1

选项

含义

-E

只进行预处理

-S(大写)

只进行预处理和编译

-c(小写)

只进行预处理、编译和汇编

-o file

指定生成的输出文件名为 file

文件后缀

含义

.c

C 语言文件

.i

预处理后的 C 语言文件

.s

编译后的汇编文件

.o

编译后的目标文件

一步编译
代码语言:javascript
复制
gcc hello.c -o demo(还是经过:预处理、编译、汇编、链接的过程):
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • c语言的编译步骤
    • 预处理
      • 编译
        • 汇编
          • 链接
            • 一步编译
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档