• Makefile


    1、-g -wall

    -g 编译器编译时加入debug信息
    -Wall 就是打开所有的警告

    -Wall 这个的意思是wring all 意思在编译和链接过程中显示所有警告信息

    2、-I -l -L

    例:

    gcc -o hello hello.c   -I/home/hello/include   -L/home/hello/lib    -lworld
    上面这句表示在编译hello.c时:

    -I /home/hello/include,表示将/home/hello/include目录作为第一个寻找头文件的目录,寻找的顺序是:/home/hello/include–>/usr/include–>/usr/local/include

    也就是指定优先查找的目录,找不到的话查找默认目录
    -L /home/hello/lib,表示将/home/hello/lib目录作为第一个寻找库文件的目录, 寻找的顺序是:/home/hello/lib–>/lib–>/usr/lib–>/usr/local/lib

    同上,也是指定优先查找的目录
    -l word , 表示**寻找动态链接库文件**libword.so(也就是文件名去掉前缀和后缀所代表的库文件)

    如果 加上编译选项-static,表示寻找静态链接库文件,也就是libword.a

    3、$(wildcard *.c)   (wildcard : 扩展通配符)

     一般我们可以使用“$(wildcard *.c)”来获取工作目录下的所有的.c文件列表

    4、模式字符串替换函数——patsubst 

    $(patsubst %.c,%.o, a.c b.c)

    把字串“a.c b.c”符合模式[%.c]的单词替换成[%.o],返回结果是“a.o b.o”

     

     5、-C 切换到指定目录

    all:
        make -C ./kernel
        cp ./kernel/name.ko .
        
        make -C ./user
        cp ./user/name.   
        
    clean:
        make clean -C ./kernel
        make clean -C ./userrm -rf ./name.ko ./name
  • 相关阅读:
    单机 Nexus 部署
    Docker 部署 3 节点 ES 集群
    Harbor 高可用部署
    Python 第四次实验
    es入门
    Golang的Test的用法
    spring elastic
    golang下载包的时候出现 dial tcp 142.251.43.17:443: i/o timeout时候解决
    Java加密并压缩文件
    feign调用添加header
  • 原文地址:https://www.cnblogs.com/ggzhangxiaochao/p/13353306.html
Copyright © 2020-2023  润新知