iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >shell脚本编程Makefile的使用
  • 362
分享到

shell脚本编程Makefile的使用

shell Makefile 2022-06-05 00:06:30 362人浏览 安东尼
摘要

目录为什么要使用MakefileMakefile的编写Make工作原理Makefile的规则为什么要使用Makefile 简单来说,当我们写一个稍微大一些项目的时候,如果我们要执行一个程序那得编译很多个文件并且还得链接起

目录
  • 为什么要使用Makefile
  • Makefile的编写
  • Make工作原理
  • Makefile的规则

为什么要使用Makefile

简单来说,当我们写一个稍微大一些项目的时候,如果我们要执行一个程序那得编译很多个文件并且还得链接起来,如果没有Makefile我们就得一个一个编译一个一个链接那真的是又臭又长(而且还会经常写错),而Makefile就能够很好的解决这个问题,所以说掌握好Makefile的编写是很有必要的

Makefile的编写

程序的编译和链接

使用C、c++编写可执行程序,IYIdsPZz首先要把源文件编译成中间代码文件,linux下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。

一个项目,拥有成百上千的源程序文件,编译链接这些源文件都是由规则的,Makefile闪亮登场!Makefile确定整个工程的编译规则,只需要一个make命令,就可以实现“自动化编译”。make是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。

Make 工作原理

通常在一个项目里,我们的规则是:
1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。
2)如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。
3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。

其实就是智能的识别哪些编译链接需要做,哪些不用做避免不必要的时间消耗

只要我们的Makefile写得够好,我们只用一个make命令就可以完成,make命令会自动智能地根据当前的文件修改的情况来确定哪些文件需要重编译,从而自己编译所需要的文件和链接目标程序。

Makefile的规则

target … : prerequisites …

command

target:也就是一个目标文件,可以是ObjectFile,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,暂不叙述。

prerequisites:要生成那个targIYIdsPZzet所需要的文件或是目标。

command:也就是make需要执行的命令。(任意的shell命令)

这是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于prerequisites中的文件,其生成规则定义在command中。说白一点就是说,prerequisites中如果有一个以上的文件比target文件要新的话,command所定义的命令就会被执行。这就是Makefile的规则。也就是Makefile中最核心的内容。

一个范例:

hello_demo : hellospeak.o speak.o   //由hellospeak.o speak.o链接成目标hello_demo                                  
        GCc -o hello_demo hellospeak.o speak.o  //执行下面的命令                               

hellospeak.o : hellospeak.c speak.h  //如果一些hellospeak.c的函数声明是在头文件speak.h中那么也得在这后面加上                                         
        gcc -c hellospeak.c                                                
speak.o : speak.c  speak.h                                                  
        gcc -c speak.c                                                    
clean :                                                                  
        rm hello_demo speak.o  hellospeak.o  //当执行make clean时就会执行这个语句 

下面是我写的整体例子

//speak.h
#include<stdio.h>
#include<stdlib.h>
void helloSpeak();
--------------------------------------------------------------




//speak.c
#include"speak.h"
void helloSpeak()
{
 printf("Hello Makefile\n");
}
--------------------------------------------------------------




//main.c
#include"speak.h"
int main()
{
  helloSpeak();
  return 0;
}



--------------------------------------------------------------
//Makefile
Hello: main.o speak.o
        gcc -o Hello  main.o speak.o
main.o: main.c speak.h
IYIdsPZz        gcc -c main.c
speak.o: speak.c speak.h
        gcc -c speak.c
clean:
        rm Hello speak.o main.o

~

运行效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

 到此这篇关于shell脚本编程Makefile的使用的文章就介绍到这了,更多相关shell Makefile内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: shell脚本编程Makefile的使用

本文链接: https://www.lsjlt.com/news/21612.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【shell脚本编写】shell 数组的使用
    数组 shell基础-04 数组(定义数组、查看数组、访问数组、删除数组、关联数组、二维数组) shell脚本之数组 打印数组_shell数组和字典 速查 操作命令作用创建数组declare ...
    99+
    2023-09-03
    php 开发语言 linux
  • Shell脚本编程教程
    Shell脚本编程是一种在Unix或Linux操作系统下编写脚本的方法,它可以用于自动化任务、批处理等目的。下面是一个简单的Shel...
    99+
    2023-09-13
    Shell
  • go使用makefile脚本编译应用的方法小结
    1. go介绍 Go官方 提供一个名为go的命令,该命令可以用来下载go的依赖,构建安装go应用,运行和测试 Go程序等等, 我们比较常用的比如go get, go mod, go ...
    99+
    2024-04-02
  • shell脚本编程if语句的使用方法
    本篇内容主要讲解“shell脚本编程if语句的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“shell脚本编程if语句的使用方法”吧!我不是研究linux下的东西的,所以这里只对shel...
    99+
    2023-06-09
  • Shell脚本编程实践——第3关:使用Shell脚本创建文件目录
    任务描述 本关任务:设计一个Shell程序,在/home目录下建立一个userdata目录,在userdata目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为...
    99+
    2023-10-12
    linux 服务器 运维
  • 如何编程Linux Shell脚本
    本篇内容介绍了“如何编程Linux Shell脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!从程序员的角度来看, Shell本身是一种用...
    99+
    2023-06-09
  • Shell脚本编程入门编写教程
    这篇文章主要讲解了“Shell脚本编程入门编写教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本编程入门编写教程”吧!例子一:绘制特殊图形代码如下:#!/bin/bash&nb...
    99+
    2023-06-09
  • Shell脚本编程的示例分析
    这篇文章给大家分享的是有关Shell脚本编程的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是Shell脚本Shell脚本(英语:Shell script),又称Shell命令稿、程序化脚本,是一种电...
    99+
    2023-06-09
  • shell脚本编程的规范有哪些
    在编写shell脚本时,可以遵循以下规范:1. 注释:在脚本的开头或相关代码部分添加注释,解释脚本的功能,参数的含义,以及可能的注意...
    99+
    2023-09-22
    shell
  • Windows下如何使用PHP编写Shell脚本?
    在Windows操作系统下,使用PHP编写Shell脚本可以帮助我们自动化执行各种任务,从而提高效率。接下来,我们将介绍如何在Windows下使用PHP编写Shell脚本。 首先,我们需要安装PHP。可以在PHP官网下载Windows版本的...
    99+
    2023-07-01
    path windows shell
  • Shell 脚本编程的实践是怎样的
    这篇文章跟大家分析一下“Shell 脚本编程的实践是怎样的”。内容详细易懂,对“Shell 脚本编程的实践是怎样的”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Shell 脚本编...
    99+
    2023-06-28
  • Linux shell脚本编程if语句怎么用
    小编给大家分享一下Linux shell脚本编程if语句怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!if 语句格式if  条件then ...
    99+
    2023-06-09
  • 如何理解Linux Shell脚本编程
    本篇内容介绍了“如何理解Linux Shell脚本编程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通常,当人们提到“shell脚本语言”时...
    99+
    2023-06-09
  • Shell脚本如何使用
    小编给大家分享一下Shell脚本如何使用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! shell前言Shell 能够接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,比如输出到显示器、写入到文...
    99+
    2023-06-15
  • shell脚本编程中case语句的实例用法
    本篇内容介绍了“shell脚本编程中case语句的实例用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!case语句是用来实现多个if..e...
    99+
    2023-06-09
  • 如何使用Go编写Apache的同步Shell脚本?
    Apache是目前最流行的Web服务器之一,因此很多人都使用它来托管自己的网站。但是,当我们有多台服务器时,如何同步网站文件和配置文件变得非常困难。传统的方法是使用Shell脚本,但是这种方法很容易出错,并且难以扩展。在本文中,我们将介绍...
    99+
    2023-10-20
    apache 同步 shell
  • shell脚本编程之循环语句怎么用
    小编给大家分享一下shell脚本编程之循环语句怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循...
    99+
    2023-06-09
  • shell高效编程:shell脚本从未如此美丽
    平常工作中,你是否感觉shell脚本只是命令的堆砌;很多时候只是为了实现功能而没有好的组织结构;自己的脚本都不想再看一遍;哈哈,我这就教给shell的“葵花宝典“,自此让你的shell脚本有python一样的美感并且极易维护,真的是shel...
    99+
    2023-06-05
  • Shell脚本编程之判断语句怎么用
    这篇文章给大家分享的是有关Shell脚本编程之判断语句怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、单分支if语句格式:if 判断条件;thenstatement1statement2...fi二、双分...
    99+
    2023-06-09
  • Java和Unix Shell编程学习笔记:如何编写可重用的Shell脚本?
    Shell脚本是Unix系统中常用的一种脚本语言,它可以通过命令行界面或者脚本文件来执行一系列的操作。而编写可重用的Shell脚本则可以大大提高脚本的灵活性和可维护性,使得我们可以更加高效地完成工作。本文将介绍如何编写可重用的Shell脚...
    99+
    2023-09-12
    shell unix 学习笔记
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作