当前位置: 首页 > 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.mrgr.cn/news/29867.html

相关文章:

  • 【Chapter 3】Machine Learning Classification Case_Prediction of diabetes-XGBoost
  • npm i忽略依赖冲突
  • Python | Leetcode Python题解之第557题反转字符串中的单词III
  • 【Linux】软件安装目录的选择
  • MySQL多系统安装配置教程(Windows、Ubuntu、Centos)
  • uniapp实现H5和微信小程序获取当前位置(腾讯地图)
  • 深入理解Spring中请求作用域的数据存储:ThreadLocal还是Spring容器?
  • javascript-数据类型
  • Cursor免费 GPT-4 IDE 工具的保姆级使用教程
  • Unity从2018.1版本开始,可以采用内置JSON进行存档和读档
  • Linux中权限和指令
  • 闯关leetcode——35. Search Insert Position
  • windows C++ 并行编程-异步消息块(一)
  • Linux驱动开发 ——架构体系
  • JDBC编程详细总结
  • 「C++系列」异常处理
  • 速盾:凡科建站开cdn了吗?
  • 【从计算机的发展角度理解编程语言】C、CPP、Java、Python,是偶然还是应时代的产物?
  • 硬件开篇——体系架构
  • 408算法题leetcode--第八天
  • [Redis][Redis简介]详细讲解
  • 【无标题】Java_Se 数据变量与运算符
  • Linux C高级 day1
  • 7.7opencv中(基于C++) 翻转图像
  • Linux运维篇-服务器简介
  • 微博计算架构实战