• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

Ubuntu系统下C语言的编译及makefile的应用

互联网 diligentman 3小时前 2次浏览

本文主要叙述了Ubuntu在Windows10环境下的安装,Linux系统下编写C语言程序、运行C语言程序,及Makefile文件编写规则。

目录

文章目录

  • Ubuntu的安装
    • 1.Linux简介
    • 2.虚拟机的安装
      • 2.1 虚拟机的选择
      • 2.2 VMware Workstation pro安装常见问题
    • 2.3 Ubuntu 的安装
  • Ubuntu系统下编写C语言程序
    • 1.C语言环境的安装
    • 2.编写HelloWorld程序
  • Makefile的应用
    • 1.Makefile简介
    • 2.实例

Ubuntu的安装

1.Linux简介

​ Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise、SUSE、Oracle Linux等。[1]

​ 其中,Linux服务器就是采用Linux系统的网络服务器,具有很多优点,被广泛用于web服务器、文件服务器、邮件服务器、域名解析服务器、防火墙等相关设备上。

​ 在学习Linux操作系统时,常用的Linux操作系统发行版本有Ubuntu、CentOs等。

2.虚拟机的安装

2.1 虚拟机的选择

​ 笔者在Windows 10 Home系统环境下,选择安装的虚拟机为VMware Workstation pro版本为16.0,如图。

Ubuntu系统下C语言的编译及makefile的应用

​ 具体安装过程比较简单,具体可以参考CSDN上的其他博客。

2.2 VMware Workstation pro安装常见问题

​ 安装虚拟机之前,首先需要启用Windows的部分功能。

​ step1:打开控制面板,查看方式选择 类别 。

Ubuntu系统下C语言的编译及makefile的应用

​ step2:点击 程序 。

Ubuntu系统下C语言的编译及makefile的应用

​ step4:点击 启用或关闭Windows功能 。

Ubuntu系统下C语言的编译及makefile的应用

​ step5:选择 虚拟机平台 ,点击确定。

​ 部分用户可能出现蓝屏问题。首先记住蓝屏时Windows的错误代码,然后在网站上搜索相关资料。比如可能的问题是Windows中Hyper-v功能与VMware Workstation pro软件不兼容,其解决方法是在 Windows 功能 中关闭 Hyper-v 功能。

2.3 Ubuntu 的安装

​ 笔者选择的Ubuntu版本是ubuntu-18.04.5-desktop-amd64,建议选择国内的镜像网站下载镜像文件。

​ Ubuntu官网的网址如下:

https://ubuntu.com/download/desktop

​ 网易的下载地址:

http://mirrors.163.com/ubuntu-releases/

​ 中科大下载地址:

http://mirrors.ustc.edu.cn/ubuntu-releases/

阿里云下载地址:

http://mirrors.aliyun.com/ubuntu-releases/

​ 国内镜像网站比较大,读者可以自寻合适的网站下载镜像文件。在镜像网站上,首先选择Ubuntu的版本。

Ubuntu系统下C语言的编译及makefile的应用

​ 比如安装Ubuntu 18版本,我们点击Ubuntu 18.04/。

Ubuntu系统下C语言的编译及makefile的应用

​ 我们下载iso为文件结尾名的文件,其中含有desktop的文件是桌面版,含有server的文件是服务器版。桌面版和我们熟悉的Windows操作系统类似,有着可视化界面可以操作,服务器版类似于终端界面,读者可以根据自己的需求来选择合适的系统的版本。

​ 接下来是在VMware Workstation pro中安装Ubuntu系统。打开VMWare Workstation pro软件后,我们点击 创建新的虚拟机 。

Ubuntu系统下C语言的编译及makefile的应用

​ 进入新虚拟机向导,可以选择典型或者自定义。新手推荐典型配置,安装过程会比较简单一点。

Ubuntu系统下C语言的编译及makefile的应用

​ 具体安装过程请读者在网上自寻搜索并安装。配置好Ubuntu系统后我们就可以进入C语言的环境配置了。

Ubuntu系统下编写C语言程序

1.C语言环境的安装

​ 首先检查网络连接是否正常。可以将Ubuntu系统的镜像源修改为国内的地址,在安装一些软件时下载速度会相对快一点。在Ubuntu中打开终端(快捷键 Ctrl+Alt+T),输入 ifconfig,如果提示错误,需要下载net-tools的包来执行这个指令。(此步可以跳过,可以选择直接安装gcc)。

sudo apt install net-tools

​ 安装好后,输入ifconfig检查网络配置。接下来开始配置C语言环境,输入以下指令安装gcc。

sudo apt install gcc

​ 安装完成后,可以输入以下代码检查gcc是否正常安装。

gcc

​ 此时终端会提示没有输入文件,说明gcc已经成功安装了。

2.编写HelloWorld程序

​ Ubuntu上常用的文本编辑器有vivim、gedit、nano等,下面主要以nano来介绍我们如何编写Ubuntu上第一个C语言程序。首先,我们输入以下代码。

nano HelloWorld.c

​ 这句代码中nano是使用nano编辑器来创建打开HelloWorld.c文件。在Linux系统中查询到,nano的用法如下。

nano [options] [[+line[,column]] file]...

​ 我们编写以下的程序。

#include<stdio.h>
int main()
{
	printf("Hello,world!");
}

​ 我们按下Ctrl+X离开编辑器,输入Yy保存文件,并命名为HelloWorld.c。编写好程序后,我们使用gcc编译我们的代码,输入以下代码。

gcc HelloWorld.c

​ 默认情况下,gcc会将编译过后的文件命名为a.out,当然我们也可以使用下面的代码将编译的文件命名为其他名字。

gcc [file] -o [name]

​ 我们可以在终端输入ls 来查看当前目录下的所有文件。在终端输入ls 命令后,我们可以看到gcc编译过后的文件,且文件的颜色为绿色,说明这个一个可执行程序。在终端输入以下命令来执行它。

./a.out

​ 其中./表示的是当前文件夹,Linux系统首先需要找到这个文件的位置才能执行它,a.out是刚刚gcc编译的文件。

Makefile的应用

1.Makefile简介

​ 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令。[2]

​ 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。[3]

​ 以上参考了相关网站,详情请打开原网站。

​ 所以我们需要使用makefile来编译大型程序文件。

2.实例

​ 下面编写了一个主程序文件 main1.c 和一个子程序文件 sub1.c,其中子程序sub1.c 包含一个算术运算函数float x2x(x1,x2),此函数功能为对两个输入整型参数做相乘,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。下面分别是sub1.c和main1.c的代码。

sub1.c

float x2x(int x1,int x2)
{
    return (float)(x1*x2);
}

main1.c

#include<stdio.h>
#include "sub1.c"
int main()
{
    int x1,x2;
    scanf("%d %d",&x1,&x2);
    printf("%f",x2x(x1,x2));
    return 0;
}

​ 在Ubuntu系统中执行。

Ubuntu系统下C语言的编译及makefile的应用

​ 比如我们输入3和7,中间用空格隔开,得到结果21.000000。

​ 在Windows环境下运行此程序非常容易,笔者使用的编译器时Visual Studio Code(以下简称VS Code)。编写完sub1.c和main1.c文件后,将其保存在同一目录下,点击运行,运行结果如下。

Ubuntu系统下C语言的编译及makefile的应用

​ 接下来使用编辑makefile文件,然后使用make命令生成可执行文件。首先在同一目录下创建makefile文件,然后写入以下代码。

target:main1.o sub1.o
	gcc -o target main1.o sub1.o
main1.o:main1.c
	gcc -c main1.c
sub1.o:sub1.c
	gcc -c sub1.c
clean:
	rm *.o

​ 如果出现函数x2x多次定义的问题,笔者目前找到最简单的方法是在sub1.c的函数前面加上inline前缀。或者可以将sub1.c文件重新命名为sub1.h,然后将makefile文件中sub1.c修改为sub1.h。在终端输入make后,就会生成可执行文件。

Ubuntu系统下C语言的编译及makefile的应用

​ 终端此时会执行我们makefile文件中的语句,此时我们会得到名为target可执行文件,输入以下语句执行。

./target

Ubuntu系统下C语言的编译及makefile的应用

​ 此时我们就成功的使用了makefile来编译程序了。
Ubuntu系统下C语言的编译及makefile的应用

"> 最后一次编辑为2021年9月14日


程序员灯塔
转载请注明原文链接:Ubuntu系统下C语言的编译及makefile的应用
喜欢 (0)