递归 Makefile - 将变量传递到根 Makefile

发布于 2024-11-18 14:11:33 字数 543 浏览 3 评论 0原文

目前,由于一些意外的递归和必要的文件名集合,我在生成文件方面遇到了问题。我想在项目的根文件夹中递归调用 Makefile,并且应该遍历每个可能的子文件夹(及其子文件夹...),目标是收集所有文件并将它们写入一个变量以用作“目标” " 或依赖文件。

例如:/Makefile 遍历/Source/Source/Boot 并找到/Source/Boot/Boot.s (-> 因此,一个目标是 /Source/Boot/Boot.o),它继续使用 /Source/Kernel 并找到 /Source/内核/Foo.c (-> 因此,第二个目标是 /Source/Kernel/Foo.o)。我可以在子文件夹的 Makefile 中编译这些文件,但是当我的根 Makefile 返回到根目录时,我需要链接它们。

所以问题是,我如何才能将这些目标文件的路径充分传递到根 makefile 来链接它们?

Currently i am having problems with a makefile due to some unexpected recursion and the neccessary collection of filenames. I want to call recursively a Makefile in the root folder of my project and that one should go through every possible subfolder (and their subfolders...) with the goal to collect all files and write them to a variable to be used as "targets" or dependent files.

For example: /Makefile goes through /Source, /Source/Boot and finds /Source/Boot/Boot.s (-> one target is therefore /Source/Boot/Boot.o) and it goes on with /Source/Kernel and finds /Source/Kernel/Foo.c (-> second target is therefore /Source/Kernel/Foo.o). I can compile these files in the Makefiles in the subfolders, but i need to link them when my root Makefile returns to the root.

So the question is, how can i pass adequately the paths to these object files to the root makefile to link them?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天涯离梦残月幽梦 2024-11-25 14:11:33

递归调用的 makefile 无法将信息传递回其调用者(除非您采取黑客手段,例如使用外部文件来收集对象文件名)。
看看马克链接到的论文。它展示了一种以可维护的方式组织项目来完成您想要的事情的方法。

Recursively called makefiles can't pass info back to their caller (unless you resort to a hack, like using external files to collect the object file names).
Have a look at the paper Mark linked to. It shows a way of organising your project to do what you want, in a maintainable way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文