如果我创建一个包含许多子目录并且每个对应一个特定模块(如A,B,C,D,E,F)和可执行目标E1,E2,E3 。每个模块对应于可执行目标使用的一个* .a。我的问题是如何生成模块和模块之间的依赖关系以及模块和可执行目标之间的依赖关系。也就是说,如果E1使用A的一个文件,那么E1应该依赖于A,因为我需要linke A.a来创建E1。
我应该如何设计我的Makefile来生成这种类型的依赖关系?谢谢,我是Makefile的新手。具有多个目录/模块依赖关系的Makefile
0
A
回答
0
我假设你正在使用GNU Make。你应该定义一个“罐装食谱”,它封装你如何从库到可执行文件。配方应该使用“自动变量”,以便它独立于特定的文件。因为它只有一个配方,所以它被调试一次,然后可以使用而不会出现进一步的错误。
然后,您可以在明确声明目标库和必备库的位置编写规则。因为它非常明确,所以它具有很高的防错性。然后你使用罐装食谱。如果你搞砸了前提条件,配方会抱怨。
一个例子如下。
通常情况下,除了库之外,还有其他先决条件。例如,您应该始终使用所使用的makefile列表。您可能还需要确保创建目标的目录。这就是为什么在下面的配方中,我使用了过滤器。
请查阅GNU Make手册,了解所有在此未说明的术语。
define recipe=
link [email protected] $(filter %.a, $^)
endef
E1: A.a (other prerequisites)
$(recipe)
相关问题
- 1. 具有依赖关系的Arduino-like Makefile ...?
- 2. 具有多个 - 具有依赖关系的多个模块的父POM
- 3. Makefile对于具有多个.c和.h依赖关系的单个目标
- 4. 如何发布具有项目间依赖关系的Maven多模块项目?
- 5. 具有两个或更多依赖关系的Makefile模式规则%.sas7bdat:%.sas%.dat
- 6. Makefile - 如何调用具有依赖关系的其他makefile
- 7. Python模块依赖关系
- 8. Python模块依赖关系
- 9. nodejs - 模块依赖关系
- 10. Require.js,模块依赖关系
- 11. Linux模块依赖关系
- 12. Clojure模块依赖关系
- 13. cx_freeze模块依赖关系
- 14. Maven多模块依赖关系共享
- 15. 春天roo多模块依赖关系
- 16. 制作具有多个依赖关系的文件依赖关系图
- 17. 具有多个子目录的Linux内核模块的Makefile
- 18. Makefile头依赖关系
- 19. Makefile - 依赖关系生成
- 20. 解决Makefile依赖关系
- 21. Makefile:扩展依赖关系
- 22. Makefile文件依赖关系
- 23. 模块依赖关系中的依赖关系?
- 24. 模块依赖关系和关系
- 25. 用于在多个项目中安装依赖关系Makefile
- 26. 结构图 - 具有依赖关系的安装依赖关系
- 27. mvn依赖关系:具有传递性依赖关系的树
- 28. Maven多模块项目中的自动装配依赖关系
- 29. 与依赖关系处理的多模块Maven项目
- 30. maven在多模块项目中建立依赖关系的jar
你问过如何为E1编写规则,以便A.a是E1的前提条件? – Beta
是的,但我希望自动生成这个规则,而不是自己写这个规则,以防我犯这个依赖关系的错误。那可能吗?或者我只想知道如何在包含多个库和可执行文件的大型项目中编写Makefiles,其中每个可执行文件都依赖于某些库。我认为手动编写这些依赖关系时会出错。谢谢 – user2875245
这些依赖关系可以自动处理,但它很棘手。你在用什么语言?你有一个明智的命名约定(例如'A/A.a')吗? – Beta