MAKEFILE 从易到难

相信一个简单的makefile, 只要用过C语言的都能写出来。

但是如果工程中包含了几十个文件夹, 上万个文件, 那用一般的方式就搞不定了。

在用dpdk 的时候, 会经常修改makefile要适配我们的工程。 最开始也是用dpdk中自带的makefile进行修改。因为dpdk自带的make 都比较简洁。在dpdk v20之前, makefile中会有 include xx.mk的这种用法,这个是把dpdk自己的一些环境变量, 比如目录, 编译器这些提前设置好。

从v20之后dpdk中makefile中就没有这个用法了, 因为采用了更高级的编译方法(ninja build).

在使用dpdp的时候,也是从那个时候开始接触到了wildcard, subdir, filter , %.o , VPATH,  .PHYON, source_y, 等变量和用法。 虽然当时也猜到了这些默认的变量是在做什么工作, 但是也没有一份系统性的说明文档。

今天在看内核相关文章时, 看到这个文章, 发现真的非常好, 以下这个文章中基本解答了80%的 问题。

全网最牛Linux内核Makefile系统文件详解(纯文字代码) - 知乎

感谢分享者的总结,当然还有一些比如静态库, 动态库, 这个文章中没有提到, 一些其他的编译参数后续用到再补充到这个文章中。

相关推荐

  1. MAKEFILE

    2024-04-30 20:34:01       32 阅读
  2. or?c++

    2024-04-30 20:34:01       26 阅读
  3. Offer必备算法18_栈_五道力扣题详解(由

    2024-04-30 20:34:01       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-30 20:34:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-30 20:34:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-30 20:34:01       87 阅读
  4. Python语言-面向对象

    2024-04-30 20:34:01       96 阅读

热门阅读

  1. 【华为OD机试】-(C卷+D卷)-2024最新真题目录

    2024-04-30 20:34:01       58 阅读
  2. 【个人博客搭建】(13)SqlSugar仓储实现

    2024-04-30 20:34:01       25 阅读
  3. 黑客眼中最简单的漏洞,弱口令暴力破解

    2024-04-30 20:34:01       30 阅读
  4. Spring中实现策略模式的几种方式

    2024-04-30 20:34:01       27 阅读
  5. Kafka集群搭建

    2024-04-30 20:34:01       36 阅读
  6. ndk编译android系统下运行的ffmpeg配置

    2024-04-30 20:34:01       34 阅读
  7. 使用通义千问,为汽车软件需求生成测试用例

    2024-04-30 20:34:01       29 阅读
  8. WebSocket 的封装

    2024-04-30 20:34:01       39 阅读