首页 > 系统相关 >linux m、mm、mmm函数和make的区别

linux m、mm、mmm函数和make的区别

时间:2025-01-17 18:12:17浏览次数:1  
标签:mm make mmm 编译 模块 Android

在 Linux 内核开发和 Android 开发中,构建系统通常使用 make 命令来编译和构建项目。而在 Android 开发环境中,还有 mmm 和 mmm 等命令,这些命令是 Android 构建系统的一部分,提供了更高效和便捷的构建方式。以下将详细介绍这些命令的功能、使用场景和区别。

一、make 命令

概述

make 是一个构建自动化工具,通过读取名为 Makefile 的文件来执行编译和构建任务。Makefile 中定义了编译规则、依赖关系和构建步骤。

使用场景

  • 编译整个项目make 命令通常用于编译整个项目。
  • 增量编译make 只编译发生变化的文件,节省编译时间。
  • 执行自定义任务:通过在 Makefile 中定义自定义任务,make 可以执行多种构建和自动化任务。

示例

make
make clean
make install
​
   

二、mmm 和 mmm 命令

概述

mmm 和 mmm 是 Android 构建系统中的命令,用于简化 Android 项目的编译过程。这些命令是 Android 源代码树中的脚本,帮助开发者在不同级别上进行构建。

1. m 命令

功能

m 命令在 Android 源代码的根目录中使用,用于编译整个 Android 系统。

使用场景

  • 编译整个 Android 系统:在源码根目录中运行 m 命令来编译整个 Android 系统,包括所有的子项目和模块。

示例

m
​
   

2. mm 命令

功能

mm 命令在模块目录中使用,用于编译当前目录下的所有模块。

使用场景

  • 编译当前目录的模块:在具体模块的目录中运行 mm 命令,只编译当前目录下的模块,适合单个模块的开发和调试。

示例

cd packages/apps/Settings
mm
​
   

3. mmm 命令

功能

mmm 命令可以在任意位置使用,用于编译指定路径下的模块。

使用场景

  • 编译指定路径的模块:可以在 Android 源代码树中的任何位置运行 mmm 命令,编译一个或多个指定路径下的模块。

示例

mmm packages/apps/Settings
​
   

三、区别和对比

1. 使用范围

  • make:适用于各种项目的构建,包括但不限于 Linux 内核和应用程序。make 是一个通用的构建工具,通过 Makefile 控制构建流程。
  • mmmmmm:专用于 Android 源代码树中的构建。m 编译整个 Android 系统,mm 编译当前目录下的模块,mmm 编译指定路径下的模块。

2. 编译粒度

  • make:可以根据 Makefile 中定义的规则,灵活地编译整个项目或特定的目标。
  • m:编译整个 Android 系统,适合全量构建。
  • mm:编译当前目录下的模块,适合单个模块的开发和调试。
  • mmm:编译指定路径下的模块,适合同时编译多个不同路径下的模块。

3. 依赖管理

  • make:依赖关系通过 Makefile 定义,手动管理,适用于各种编程语言和项目。
  • mmmmmm:依赖关系由 Android 构建系统自动管理,简化了 Android 项目的依赖管理。

四、总结

功能对比表

命令 功能 使用场景 依赖管理 编译粒度
make 通用构建工具,通过 Makefile 控制 各种项目 手动管理 灵活,依赖 Makefile 定义
m 编译整个 Android 系统 编译 Android 系统 自动管理 整个系统
mm 编译当前目录下的模块 Android 模块开发 自动管理 当前目录
mmm 编译指定路径下的模块 Android 模块开发 自动管理 指定路径

使用建议

  • 使用 make:适用于需要自定义构建流程的项目,特别是在非 Android 项目中。
  • 使用 mmmmmm:适用于 Android 开发,利用其自动化构建和依赖管理功能,提高开发效率。

通过理解和合理使用这些命令,可以更高效地进行项目构建和管理,特别是在复杂的 Android 开发环境中。

标签:mm,make,mmm,编译,模块,Android
From: https://www.cnblogs.com/ll55522201/p/18677487

相关文章

  • Three.js 物理引擎入门:与 Ammo.js 搭配实现逼真物理效果
    Three.js物理引擎入门:与Ammo.js搭配实现逼真物理效果3D场景中的物理效果(如重力、碰撞、弹性反弹等)是让用户体验更加逼真的关键。Three.js本身并不包含物理引擎,但可以结合第三方物理引擎来实现真实的物理模拟,例如Ammo.js。在这篇文章中,我们将介绍如何结合Three.js......
  • CMake 入门教程: 从基础到实践
    什么是CMake?CMake(全称为“Cross-PlatformMake”)是一种免费并开源的跨平台构建工具,用于生成构建系统文件(如Makefile和VisualStudio工程文件),从而控制软件的编译和链接过程.为什么选择CMake?CMake为项目工程解决了以下问题:跨平台构建:支持为多种平台......
  • 解决cmake编译时*ui,*h存放在不同文件夹下时*.ui无法生成ui_*.h问题
    使用的Qt版本为6.8.1,cmake版本为3.31.0-rc1。遇到问题原因原本的目录结构比较乱,代码文件一多就很不好找,在对文件进行分类管理的过程中发现*ui文件无法生成ui_*.h有问题部分的cmake本来想使用qt_wrap_ui和set(CMAKE_AUTOUICON)让他自动生成ui_*.h的,但是失败了cmake_minimum_......
  • (翻译) 关于游戏网络,每个游戏程序需知 What Every Programmer Needs To Know About
    原文链接 https://gafferongames.com/post/what_every_programmer_needs_to_know_about_game_networking/ Haveyoueverwonderedhowmultiplayergameswork?Fromtheoutsideitseemsmagical:twoormoreplayerssharingaconsistentexperience(一致的体验)across......
  • sqoop export报错Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]
    sqoopexport报错Timestampformatmustbeyyyy-mm-ddhh:mm:ss[.fffffffff]sqoopexport报错如下:Causedby:java.lang.IllegalArgumentException:Timestampformatmustbeyyyy-mm-ddhh:mm:ss[.fffffffff]atjava.sql.Timestamp.valueOf(Timestamp.java:204)atGS......
  • 本地部署woocommerce
    1.了解wordpress和woocommerce插件 WordPress是个开源建站程序,数以万计的插件拓展了WordPress的功能,让WordPress几乎可以用来做任何网站。 WooCommerce是一个基于WordPress的开源电子商务插件,用于构建和管理在线商店。2.下载wordpress3.配置wordpress运行的环境先部署php......
  • Makefile
    什么是Makefile?Makefile是一种用来自动化管理代码编译的工具。手工编译的缺点:假设你有多个.cpp文件(如main.cpp、utils.cpp等)需要编译成一个程序,手动输入命令会很麻烦:g++-cmain.cpp-omain.og++-cutils.cpp-outils.og++main.outils.o-oprogram每次修......
  • VP Daiwa Securities Co. Ltd. Programming Contest 2024(AtCoder Beginner Contest 38
    A-Humidifier1题意:一个漏水的桶,在零时刻有零升水,进行\(n\)次加水,在\(t_i\)时刻加\(v_i\)升水,每一时刻会漏一生水,问第n次加水后有多少升水。直接模拟即可,每次加水先减去漏掉的水,注意至少有0升,然后加上新加的水。点击查看代码voidsolve(){intn;std::cin>>n;......
  • 中考英语优秀范文-热点话题-传统文化-006 Welcome to Chinese Summer Camp 欢迎参加中
    1写作要求假定你是李华,你校今年暑假将为外国学生举办一场汉语夏令营活动(ChineseSummerCamp)。请你根据下面海报的内容,用英语给你的笔友David写一封电子邮件,介绍本次活动并邀请他参加。词数80左右。WelcometoChineseSummerCampTime:July18th—July28th,2024Place:No.8J......
  • 数学建模学习-整数规划(Integer Programming)教程(3)
    数学建模学习-整数规划(IntegerProgramming)教程(3)写在最前注意本文的相关代码及例子为同学们提供参考,借鉴相关结构,在这里举一些通俗易懂的例子,方便同学们根据实际情况修改代码,很多同学私信反映能否添加一些可视化,这里每篇教程都尽可能增加一些可视化方便同学理解,但具体......