首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在前一条规则中使用-C选项指定的目录下,尝试查找包含文件。为什么?

问在前一条规则中使用-C选项指定的目录下,尝试查找包含文件。为什么?
EN

Stack Overflow用户
提问于 2022-04-06 08:02:22
回答 1查看 33关注 0票数 0

Makefile:

代码语言:javascript
复制
export KDIR:=linux-5.4.188

all:
    make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KDIR) M=$(PWD) modules
    cp axpu_ldd_kc.ko /srv/tftp/.

clean:
    make ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -C $(KDIR) M=$(PWD) clean
    rm -f axpu_ldd_kc.ko

%: %.c
    $(CROSS_COMPILE)gcc -fmax-errors=2 $^ -o $@

include Makefile.qemu

Makefile.qemu:

代码语言:javascript
复制
q_kernel_g :
    ${QEMU} -machine ab21q,gic-version=max,secure=off,virtualization=true -cpu max -kernel ${LINUX_DIR}/arch/arm64/boot/Image -m 2G -nographic -netdev user,id=vnet,hostfwd=:127.0.0.1:0-:22,tftp=/srv/tftp -device virtio-net-pci,netdev=vnet -machine iommu=smmuv3 --append "root=/dev/ram init=/init nokaslr earlycon ip=dhcp hugepages=16" -s -S

g_kernel :
    pid=`ps aux | grep qemu-system | awk 'NR==1{print $2}'`
    aarch64-none-elf-gdb linux-5.4.188/vmlinux $pid -x gdb_script

当我做make时,它会给我这个错误。

代码语言:javascript
复制
make[1]: Entering directory '/home/ckim/ProjX/QEMU/qemu_test/test_ldd_540/linux-5.4.188'
/home/ckim/ProjX/QEMU/qemu_test/test_ldd_540/Makefile:35: Makefile.qemu: No such file or directory
make[2]: *** No rule to make target 'Makefile.qemu'.  Stop.

我不知道为什么要在linux-5.4.188目录下找到Makefile.qemu。如果我将Makefile.qemu复制到linux-5.4.188下,一切正常。为了使目标all变为目录Linux5.4.188,但是它为什么期望Makefile.qemu在目录下呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-06 10:19:02

我相信Linux内核Makefile将包含Makefile,因为这是在不同的目录下完成的,因此出现了错误。您可以分离只与常规Makefile调用相关的部分,而不是与内核构建相关的部分,如文档所述

代码语言:javascript
复制
ifeq ($(KERNELRELEASE),)
include Makefile.qemu
endif
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71763115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档