gpt4 book ai didi

c - xv6 的 Makefile

转载 作者:太空宇宙 更新时间:2023-11-04 09:52:08 25 4
gpt4 key购买 nike

我正在阅读xv6的代码,发现Makefile很难阅读。你能告诉我以下语句是如何工作的吗:

1. "CFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector)"
2. "LDFLAGS += -m $(shell $(LD) -V | grep elf_i386 2>/dev/null)"
3. "xv6.img:
bootblock kernel fs.img

dd if=/dev/zero of=xv6.img count=10000

dd if=bootblock of=xv6.img conv=notrunc

dd if=kernel of=xv6.img seek=1 conv=notrunc"

以及如何详细学习Makefile?能推荐几本好书吗?

谢谢!

最佳答案

  1. CFLAGS是您传递给编译器的选项(如 -fno-stack-protector -E 等)CC . $(CC)将被实际的编译器取代。即CC应该在此之前用 set CC=gcc 之类的东西初始化.

  2. LDFLAGS是选项(对于您的链接器 LD+= 就像您在 C 中的 += 运算符一样。它更新为 CFLAGSLDFLAGS 的现有值

  3. 这一行表示xv6.img依赖于 bootblock kernel fs.img .那就是我们告诉make那,为了 build xv6.img , 你需要构建 bootblock kernelfs.img首先

可以了解dd命令here

这里是完整的百科全书指南 makeMakefiles

http://www.gnu.org/software/make/manual/make.html

关于c - xv6 的 Makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9765443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com