news 2026/5/1 20:30:23

【韩公子的Linux大集市】C语言 1.4 程序的编写、编译与运行全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【韩公子的Linux大集市】C语言 1.4 程序的编写、编译与运行全流程

文章目录

  • C语言程序的编写、编译与运行全流程
    • 1. 程序编写
      • 1.1 创建源代码文件
    • 2. 编译过程详解
      • 2.1 编译的四个阶段
      • 2.2 各阶段说明
    • 3. 完整的命令行操作
      • 3.1 一步完成编译(推荐)
      • 3.2 分步编译示例
    • 4. 运行程序
      • 4.1 运行可执行文件
      • 4.2 查看输出
    • 5. 实际示例
      • 5.1 示例程序
      • 5.2 编译运行
    • 6. 常见编译选项
      • 示例:
    • 7. 集成开发环境(IDE)推荐
      • 7.1 Windows
      • 7.2 Mac/Linux
    • 8. 常见错误与调试
      • 8.1 编译错误
      • 8.2 运行时错误
      • 8.3 使用gdb调试
    • 9. 最佳实践
    • 10. 多文件编译示例
      • 10.1 文件结构
      • 10.2 编译多文件

C语言程序的编写、编译与运行全流程

1. 程序编写

1.1 创建源代码文件

创建一个文本文件,扩展名为.c,例如hello.c

#include<stdio.h>// 包含标准输入输出头文件intmain(){// 主函数,程序入口printf("Hello, World!\n");// 输出语句return0;// 返回0表示程序正常结束}

2. 编译过程详解

2.1 编译的四个阶段

源代码(.c) → 预处理 → 编译 → 汇编 → 链接 → 可执行文件

2.2 各阶段说明

  1. 预处理:处理#开头的指令

    gcc -E hello.c -o hello.i
    • 展开头文件
    • 宏替换
    • 条件编译
  2. 编译:生成汇编代码

    gcc -S hello.i -o hello.s
  3. 汇编:生成目标文件

    gcc -c hello.s -o hello.o
  4. 链接:生成可执行文件

    gcc hello.o -o hello

3. 完整的命令行操作

3.1 一步完成编译(推荐)

# 使用gcc编译器gcc hello.c -o hello# 或者使用clang编译器clang hello.c -o hello

3.2 分步编译示例

# 1. 预处理gcc -E
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 8:57:16

【韩公子的Linux大集市-C语言系列】- 本章总结

文章目录 第1章 总结:计算机、程序与C语言 一、核心概念回顾 1.1 计算机程序是什么? 1.2 C语言的独特地位 1.3 第一个程序:深度理解Hello World 1.4 程序从源代码到执行的完整流程 1.5 思维的飞跃:理解"程序即指令序列" 二、重要启示 2.1 计算的本质 2.2 程序设计…

作者头像 李华
网站建设 2026/5/1 11:55:35

根文件系统适配arm64 amd64架构的实战方法

根文件系统如何真正跑通 arm64 和 amd64&#xff1f;一位嵌入式系统工程师的实战手记去年冬天&#xff0c;我在调试一款车载域控制器时踩了个深坑&#xff1a;用 amd64 宿主机编译好的 rootfs 镜像&#xff0c;烧进基于瑞芯微 RK3588&#xff08;arm64&#xff09;的硬件后&…

作者头像 李华
网站建设 2026/5/1 11:13:17

4675388

864573828

作者头像 李华
网站建设 2026/5/1 15:20:13

打造你的家庭 AI 助手(三):QQ 机器人接入你的 OpenClaw

⚠️ 重要提示&#xff1a;如果是家用宽带&#xff0c;没有申请固定 IP 地址的话&#xff0c;大可以放弃这种方式。由于 QQ 开发平台的白名单限制&#xff0c;机器人会非常不稳定&#xff0c;频繁掉线。建议使用云服务器或有固定 IP 的环境部署。前言 在完成 OpenClaw 安装后&a…

作者头像 李华