Ubuntu18.04系统的初步使用以及使用gcc和Makefile编译C程序

Ubuntu18.04系统的初步使用以及使用gcc和Makefile编译C程序



前言:写作目的

本文的写作目的是使读者安装Ubuntu系统后能像windows系统一样能够初步使用虚拟机以及探究使用gcc和Makefile编译C程序的区别。


一、初步使用虚拟机

虚拟机安装成功默认显示语言是英文,如果你想修改系统语言的话参考文章链接:https://blog.csdn.net/qq_39567970/article/details/121769839

在安装好虚拟机后,有的虚拟机不能使用复制粘贴,启用复制粘贴以及设置快捷键参考文章链接:https://blog.csdn.net/qq_41940277/article/details/122610916

Ubuntu系统一般采用 apt-get 命令进行某个软件的在线查找和安装,默认官方的软件源仓库位于国外,下载速度较慢。因此我们要修改系统参数,选择国内镜像软件源仓库,以提高软件安装速度。
参考文章链接:https://blog.csdn.net/m0_48233584/article/details/106430699

现在你的虚拟机已经是可以像Windows一样快捷地操作了,但是如果你想运行C语言程序的话还需要准备gcc编译器,关于gcc编辑器的安装以及使用参考文章链接:https://blog.csdn.net/hujiangwei8023/article/details/88418610

在开始编写程序之前,我们还需要熟悉文本编辑器的使用,在本文使用的文本编辑器是vim,参考文章链接:https://www.runoob.com/linux/linux-vim.html

二、使用gcc和Makefile编译C程序

1.直接使用gcc编译C程序

编写程序

使用C语言编写以下程序,代码如下:

//编写main1.c
#include"sub1.h"
int main()
{
	int x=2,y=9;                     //定义x和y变量
	printf("%.2f\n",x2x(x,y));      //输出处理后的值,保留两位小数
	return 0;
}

//编写sub1.h
#ifndef __SUB1_H
#define __SUB1_H
#include<stdio.h>
float x2x(int a,int b);         //计算b除以a的结果
#endif
//编写sub.c
#include "sub1.h"

/*-----------------*/
/*     参数:a,b	   */
/*    返回值:ans   */
/*----------------*/
float x2x(int a,int b)
{
	float ans;
	ans=(float)b/a;
	return ans;
}

gcc编译原理

这里我们以常见的hello.c程序为例:
在这里插入图片描述

gcc编译过程

步骤一
命令:gcc -c sub1.c
作用:将sub1.c程序转换为目标文件sub1.o

步骤二
命令:gcc main1.c sub1.o -o main1
作用:编译main1.c文件为目标文件main1.o,然后链接sub1.o目标文件生成main1可执行文件

步骤三
执行./main1命令,即可执行编译生成的main1程序
ll: ls -l的缩写
在这里插入图片描述

2.使用Windows平台编译程序

工具:Visual Studio Code
程序:与Ubuntu系统上一致

在这里插入图片描述

3.使用makefile 编译C程序

一般的编译过程,首先编译依赖库文件,然后编译main函数,如果main.c中依赖的函数过多或调用别人提供的o库文件,每次编译会非常麻烦。所以我们引入makefile,

创建Makefile文件
需要注意的细节是,图中文件编写得并不规范,在命令前需要用tab键开头,文中是书写效果一样,但是并不规范的写法。
在这里插入图片描述
正确写法的显示效果如下:
在这里插入图片描述

编译C程序
在这里插入图片描述


总结

本次实验对于一个初次接触虚拟机的,有一定编程经验的初学者非常友好,保留了探索性难度也不是很高,但是带给我的理解认知却是更进一步的,通过本次实验,我更加熟悉了Ubuntu系统的基础操作,掌握使用诸多命令,以及理解了原初计算机编译程序的过程,它并不是像windows上一样是一键编译还有需要配置许多json的过程,在Ubuntu上我体会到了靠原理去编译程序多么便捷,单纯,直接。并且能让我们直观地感受到C语言程序是如何一步步变成可执行文件的。

参考

参考实验流程与文章格式:https://blog.csdn.net/qq_45237293/article/details/108741893
https://www.cnblogs.com/zlee-home/p/13708004.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值