【发布时间】:2017-01-11 14:13:40
【问题描述】:
我有一个项目,我想从递归转换为非递归 make。结构如下所示
+--app
| +-- Makefile
+--lib1
| +-- Makefile
| +-- x.c
| +-- y.c
|
+--lib2
| +-- Makefile
| +-- x.c
我想做的是在构建之后拥有这样的结构
+--app
| +-- build/
| | +-- debug(or release or test)/
| | | +-- lib1/
| | | | +-- *.o
| | | | +-- *.d
| | | +-- lib2/
| | | | +-- *.o
| | | | +-- *.d
| |
| +-- target/
| | +-- main.bin
| |
| +-- Makefile
|
+--lib1
| +-- module.mk
| +-- x.c
| +-- y.c
|
+--lib2
| +-- module.mk
| +-- x.c
主要思想是构建文件夹包含所有对象和依赖文件,并且目标包含应该加载的程序文件。
我遇到的问题是 make 永远不想创建这个结构。当我定义我的规则时,make 只会运行隐式规则而不是我定义的规则。
我已经阅读了关于非递归 make 的所有资源,但现在它还没有被点击。任何帮助深表感谢。
【问题讨论】:
-
让我向您推荐我的非递归模板库:github.com/igagis/prorab 它有教程。如果您需要帮助,我可以帮助您将其应用到您的项目中。
-
我们不是“提供代码!”社区。如果您有一个具体的问题,请将其与您迄今为止所做的一起说明。并且不要使用不相关的标签。这与嵌入式系统无关。
-
这与嵌入式系统有关,因为它用于生成嵌入式处理器所需的二进制文件。我们目前正在努力从专用 IDE 转变为与 IDE 无关的更简化的方法。
标签: makefile build non-recursive