zoukankan      html  css  js  c++  java
  • make命令

     

    内核驱动通用makefile:
    
    KERNELDIR := /share/linux-src
    CURRENT_PATH := $(shell pwd)
    
    ENV:=ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
    
    obj-m := ramdisk.o
    
    build: kernel_modules
    
    kernel_modules:
            $(MAKE) $(ENV) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
    
    clean:
            $(MAKE) $(ENV) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
    

     

     

    make命令是GNU的工程化编译工具,用于编译众多相互关联的源代码问价,以实现工程化的管理,提高开发效率。

    语法

    make(选项)(参数)

    选项

    -f:指定“makefile”文件;
    -i:忽略命令执行返回的出错信息;
    -s:沉默模式,在执行之前不输出相应的命令行信息;
    -r:禁止使用build-in规则;
    -n:非执行模式,输出所有执行命令,但并不执行;
    -t:更新目标文件;
    -q:make操作将根据目标文件是否已经更新返回"0"或非"0"的状态信息;
    -p:输出所有宏定义和目标文件描述;
    -d:Debug模式,输出有关文件和检测时间的详细信息。

    Linux下常用选项与Unix系统中稍有不同,下面是不同的部分:

    -c dir:在读取 makefile 之前改变到指定的目录dir;
    -I dir:当包含其他 makefile文件时,利用该选项指定搜索目录;
    -h:help文挡,显示所有的make选项;
    -w:在处理 makefile 之前和之后,都显示工作目录。

    参数

    目标:指定编译目标。

    知识扩展

    无论是在linux 还是在Unix环境 中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。

    而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员 来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。

    因此,有效的利用make和 makefile工具可以大大提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。

    https://man.linuxde.net/make

  • 相关阅读:
    【BZOJ3533】向量集(SDOI2014)-线段树+凸壳+二分
    【BZOJ4869】相逢是问候(六省联考2017)-扩展欧拉定理+线段树
    【BZOJ4012】开店(HNOI2015)-动态点分治+set
    【BZOJ1095】捉迷藏(ZJOI2007)-动态点分治+堆
    【BZOJ2299】向量(HAOI2011)-裴蜀定理
    【BZOJ4942】整数(NOI2017)-线段树+压位
    【BZOJ3594】方伯伯的玉米田(SCOI2014)-DP+二维树状数组
    背包DP专题
    【2018.11.7】【luoguNOIp 热身赛】解题报告及总结
    【一天一DP计划】状压DP
  • 原文地址:https://www.cnblogs.com/pengmn/p/14049721.html
Copyright © 2011-2022 走看看