当前位置: 首页 > news >正文

Linux(Ubuntu)(终端实现helloworld输出)

一、终端实现gcc编译

1.写好helloworld.h,helloworld.c,main.c后,打开终端,切换到保存这些文件的文件夹的目录,我把这些文件存放在helloworld的文件夹下,所以输入cd ~/helloworld

2.查看该目录下的文件,如果之前没有执行过应该没有main*这个文件

3.终端输入gcc main.c helloworld.c -o main

这句话中gcc代表编译,-o代表输出到。所以这句话就是编译main.c和helloworld.c文件后,输出到main文件

4.终端输入./main

输出hello world

二、gcc流程

1.预处理。把.c文件输出为.i文件,终端依次输入

gcc -E helloworld.c -o helloworld.i

gcc -E main.c -o main.i

其中gcc -E代表预处理,第一句话就是预处理helloworld.c文件,然后输出到helloworld.i文件

2.编译。把.i文件输出为.s文件,终端依次输入

gcc -S helloworld.i -o helloworld.s

gcc -S main.i -o main.s

3.汇编。把.s文件输出为.o文件,终端依次输入

gcc -c helloworld.s -o helloworld.o

gcc -c main.s -o main.o

4.链接,分为静态链接、动态链接和混合链接

静态链接:gcc -static main.o helloworld.o -o main

动态链接:gcc main.o helloworld.o -o main(默认动态链接)

http://www.lryc.cn/news/440958.html

相关文章:

  • 开源模型应用落地-qwen模型小试-调用Qwen2-VL-7B-Instruct-更清晰地看世界-集成vLLM(二)
  • 【乐企-工具篇】有关乐企发票文件生成- OFD和PDF文件生成
  • llama网络结构及源码
  • 828华为云征文|Flexus云服务器X实例部署宝塔运维面板
  • 计算机网络 8.*结构化布线
  • c#的委托、事件
  • Day23笔记-Day21和Day22作业讲解单例类
  • k8s中的存储
  • 【Linux进程控制】进程程序替换
  • 02 ETH
  • web渗透—RCE
  • HomeAssistant显示节假日
  • AI问答-HTTP:理解 Content-Disposition
  • kubernetes架构
  • 【隐私计算篇】中国剩余定理解释以及Paillier解密加速应用
  • 保护您的隐私:隐藏 IP 地址的重要性
  • nodejs 007:错误npm error Error: EPERM: operation not permitted, symlink
  • Rsync未授权访问漏洞复现及彻底修复
  • 影刀RPA实战:网页爬虫之携程酒店数据
  • 【UCB CS61C】Lecture 5 - Floating Point
  • 【Binlog实战】:基于Spring监听Binlog日志
  • 鸿蒙OpenHarmony【轻量系统芯片移植】轻量系统STM32F407芯片移植案例
  • 基于SpringBoot+定时任务实现地图上绘制车辆实时运动轨迹图
  • Rasa对话模型——做一个语言助手
  • golang学习笔记19——golang做服务发现与注册的深度剖析
  • ROS和ROS2借助智能大模型的学习和研究方法
  • 弹性负载均衡ELB 详解和设置方法
  • Python3网络爬虫开发实战(15)Scrapy 框架的使用(第一版)
  • 大众点评代发排名骗局
  • 硬件基础知识