首页 > 其他分享 >make命令简介

make命令简介

时间:2024-04-07 23:31:17浏览次数:24  
标签:target 编译 简介 make makefile recipe 命令 前置条件

目录

1. 简介

Compiling is the act of turning source code into object code. Linking is the act of combining object code with libraries into a raw executable. Building is the sequence composed of compiling and linking, with possibly other tasks such as installer creation.

编译是将源代码转换为目标代码的行为。链接是将目标代码与库组合成原始可执行文件的行为。构建是由编译链接组成的序列,可能还有其他任务,如创建安装程序。

The GNU make utility, which determines automatically which pieces of a large program need to be recompiled, and issues the commands to recompile them.

GNU make 实用程序,它自动确定需要重新编译大型程序的哪些部分,并发出重新编译它们的命令。

make 是C语言的项目最常用的构建build)工具。实际上,任何只要某个文件有变化,就要重新构建的项目,都可以用 make 构建。

You need a file called a makefile to tell make what to do. Most often, the makefile tells make how to compile and link a program.

你需要一个名为 makefile 的文件来告诉make该做什么。通常,makefile 会告诉make 如何编译链接程序。

2. 基本书写规则

一个简单的makefile由以下的“规则”组成:

target … : prerequisites …
<\tab>recipe
        …
        …
  1. target 通常是由程序生成的文件的名称;目标的示例是可执行文件 .out 或对象文件 .o。目标也可以是要执行的操作的名称(phony target,伪目标),例如 clean
  2. prerequisites(前置条件)是一个用作创建目标的输入的文件。一个目标通常依赖于多个 .c.h 文件。
  3. recipe 是一种执行的动作。一个 recipe 可能有多个命令,可以在同一行上,也可以在各自的行上。每个recipe行的开头都是一个制表符 <tab>

通常,一个recipe在一个有前置条件的规则中,如果任何前置条件发生变化,它将用于创建一个target文件。相反,不需要有前置条件。例如

标签:target,编译,简介,make,makefile,recipe,命令,前置条件
From: https://blog.csdn.net/m0_59577534/article/details/137413304

相关文章

  • Linux核心目录及核心命令
    1.运维必备职场技能01:如何有效提问?1.1示范错误示范:可以适当客气,没有直奔主题。路人甲:李导,在吗?忙不忙?我有个问题 过了1个小时 李导996:在,请说。 过了2个小时路人甲:李导,我这里有个服务的故障,可以帮助我下吗? 过了1个小时 李导996:请讲路人甲:李导,有......
  • 8.1 使用 rpm 命令-安装-查看-卸载-rpm 软件包
    8.1软件包的管理软件包的类型rpm二进制包------》已经使用GCC编译后的rpm概述:RPM是RedHatPackageManager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及TurboLi......
  • make编译报错:fatal error: filesystem: 没有那个文件或目录 #include <filesystem>
    报错:fatalerror:filesystem:没有那个文件或目录#include(filesystem)解决方法一:修改头文件#include<experimental/filesystem>添加依赖在编译时,后面添加:-lstdc++fs编译通过。解决方法二:升级gcc升级到gcc-8或8以上问题即可解决:添加PPA存储库首先,您需要添加Ub......
  • linux history命令
    在Linux系统中,history命令是一个非常有用的工具,它允许用户查看之前执行过的命令历史记录。这对于用户在终端会话中查找和重复使用命令非常有用。以下是history命令的一些常见用法和相关功能:查看命令历史记录:执行history命令可以列出当前用户的命令历史记录。默认情况下,它会显示......
  • 用HTML5写奥林帕斯奖简介
    一、用VSCODE写奥林帕斯奖简介代码1、以.html为结尾写主要代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0">&......
  • 【Linux】Makefile 基本语法
    make:一般说的是GNUMake,是一个软件,将源代码文件编译成可执行的二进制文件;Makefile:make工具编译的时候需要使用Makefile文件,Makefile文件描述了整个工程的编译、连接规则。接上一节:make工具和Makefile文件的引入Makefile举例注意Makefile的大小写!!!需要......
  • PHP imap 远程命令执行漏洞(CVE-2018-19518)漏洞复现
    phpimap扩展用于在PHP中执行邮件收发操作。其imap_open函数会调用rsh来连接远程shell,而debian/ubuntu中默认使用ssh来代替rsh的功能(也就是说,在debian系列系统中,执行rsh命令实际执行的是ssh命令)。因为ssh命令中可以通过设置-oProxyCommand=来调用第三方命令,攻击者通过注入注入这......
  • 面试常问问题——常用linux命令及如何查看日志?
    一、常用linux命令pwd   查看当前目录位置lscpgrepcdmvtaillesstouchmkdirpsaux  查看系统所有进程数据kill-oPID  强制中断一个进程的进行chmod  -Rxyz 文件或目录   改变文件或......
  • 微服务简介
    1.软件架构的演变早期的软件,所有功能都集中在一起,这种软件集中、代码庞大、功能耦合的软件架构,称为单体架构(monolithicsoftware)。整个软件就是单一的整体,仿佛一体化的机器。可以想到,软件的功能越多,单体架构就越复杂。很多缺点也随之暴露出来。所有功能耦合在一起,互相影响,最终......
  • zookeeper运维(部署安装,常用命令)
    目录1.安装部署1.1单机部署1.1.1下载安装1.1.2配置文件1.1.3zkserver状态管理1.1.4使用zk客户端登录服务器1.1.5使用PrettyZoo连接zk1.2集群部署1.2.1环境准备1.2.2配置修改1.2.3设置myid1.2.4启动集群1.2.5测试集群2.常用命令2.1分类2.2功能脚本2.2.1zkServer......