(avr-gcc) Makefile 对子目录的支持
我正在开发一个 AVR 项目,并且有多个包含我的代码的文件夹。
我使用的 makefile 是 Pat Deegan 的“标准化 AVR Makefile 模板”。 它能够正确编译每个文件夹中的每个 cpp 文件并生成正确的目标 (.o) 文件。
但是,链接器失败,因为它尝试在子文件夹中查找 .o 文件(编译器将它们放在主文件夹中)。 这是我收到的错误的示例:
avr-gcc: 子文件夹/module.o: 没有这样的文件或目录 make: ***
[GrandCanyon.out] 错误 1
你能帮我修改它吗,以便链接器和编译器将文件 (.o) 放入并检查相同的文件夹?
谢谢
你可以在这里获取makefile: http://electrons.psychogenic.com/articles/Makefile .tpl
I am working on an AVR project and have multiple folders containing my code.
The makefile I am using is the "Standardized AVR Makefile Template" by Pat Deegan.
It's capable of compiling every cpp file in every folder correctly and generate the right object (.o) files.
However, the linker fails because it try to find to .o files in the subfolders (the compiler put them in the main folder).
This is an example of an error I get :
avr-gcc: subfolder/module.o: No such file or directory make: ***
[GrandCanyon.out] Error 1
Can you help me modifying it so the linker and compiler put and check for the files (.o) in the same folders?
Thank you
you can get the makefile here : http://electrons.psychogenic.com/articles/Makefile.tpl
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
问题是过滤器命令,它删除目录并仅保留文件名(链接)。 而不是在一行中定义所有文件并执行以下操作:
因此,您需要手动定义每种类型的文件列表,
The problem is the filter command, which removes the directory and leaves only the file name (link). So instead of defining all the files in a single line and doing:
you need to manually define the file list for each type:
您好,我仅使用 C 语言而不是 C++ 来对 avr MCU 进行编程。 因此,我在 CFLAGS 部分中扩展了 makefile 大约一行,
当我在子目录中有源文件时,这对我有用。
我希望这会对您有所帮助,尽管这不适用于 C++
Hi I'm programming avr MCUs in C only not in C++. So I have extended makefile about one line in section CFLAGS
This works for me when I have source files in subdirectories.
I hope that this will help you althought that's not for C++