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

news/2024/9/19 6:43:58 标签: linux, ubuntu, 运维

一、终端实现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.niftyadmin.cn/n/5665168.html

相关文章

828华为云征文|Flexus云服务器X实例部署宝塔运维面板

本次华为云Flexus云服务器X实例部署宝塔运维面板教学,这次是推陈出新啊 之前的云耀云服务器L实例已经很不错了,大力赞叹华为云的 同时感谢华为云提供优惠卷,只能说白嫖真是太棒了 华为云近期正在筹办华为云828企业节活动,90款免…

【教程】鸿蒙ARKTS 打造数据驾驶舱---前序

鸿蒙ARKTS 打造数据驾驶舱 ​ 前面2章我介绍了如何通过定义View绘制箭头以及圆形进度,初步了解了鸿蒙如何进行自定义View。接下来我将通过我最近在带的一个VUE的项目,简单实现了几个鸿蒙原生页面。帮助大家快速上手纯血鸿蒙开发. 本项目基于Api11Stage模…

算法笔记/USACO Guide GOLD金组DP 3. Paths on Grids

今天学习背包DP(Knapsack DP) 是USACO Guide的DP章节中第三点 What is grid DP? -Summary DP problems often involve a 2D grid where paths are analyzed. Movement is restricted to one direction on the x-axis and y-axis, typically starting from one c…

3款免费的GPT类工具

前言 随着科技的飞速发展,人工智能(AI)的崛起与发展已经成为我们生活中不可或缺的一部分。它的出现彻底改变了我们与世界互动的方式,并为各行各业带来了前所未有的便利。 一、Kimi 网址:点我前往 国产AI模型Kimi是一…

[Python学习日记-25] 哈希(HASH)是个什么东西?

[Python学习日记-25] 哈希(HASH)是个什么东西? 简介 哈希的特性 哈希的用途 基于 HASH 的数据类型 简介 哈希(Hash),也称为散列,或音译为哈希,是把任意长度的输入(又…

Angular面试题三

一、请解释Angular中的依赖注入是什么,并简述其工作原理。 Angular中的依赖注入(Dependency Injection, DI)是一种软件设计模式,它允许一个类(通常是组件或服务)在需要时接收其依赖项,而不是在类…

C语言 | Leetcode C语言题解之第413题等差数列划分

题目&#xff1a; 题解&#xff1a; int numberOfArithmeticSlices(int* nums, int numsSize) {if (numsSize 1) {return 0;}int d nums[0] - nums[1], t 0;int ans 0;// 因为等差数列的长度至少为 3&#xff0c;所以可以从 i2 开始枚举for (int i 2; i < numsSize; i…

松散绑定是什么?

概念 比如我的yml中写的last-name,这个和lastName是一样的&#xff0c;-后面跟着的字母默认是大写的&#xff0c;这就是松散绑定 示例 类代码&#xff1a; public class Person {private String lastName;private Integer age;private Boolean happy;private Date birth;pr…