【发布时间】:2021-03-10 16:04:05
【问题描述】:
我有这样的 Makefile:
obj-m += some_kernel_module.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
当我从本地构建机器运行 make 时它可以工作(当我的当前目录是 /home/myaccount/src/some_kernel_module/ 时)。
但是,当我尝试在 Netbeans 中远程编译时,我收到了这个错误:
/usr/src/linux-headers-3.16.0-6-common/scripts/Makefile.build:44: /home/myaccount/Makefile: 没有这样的文件或目录
我猜这是因为我的 Makefile 中有 M=$(PWD),而 Netbeans Build Host 当前目录是我的主目录 (/home/myaccount) 而不是项目目录 /home/myaccount/src/some_kernel_module/)。
我该如何解决这个问题?
我手动输入了路径,它可以在本地和远程工作:
obj-m += some_kernel_module.o
all:
make -C /lib/modules/$(shell uname -r)/build M=/home/myaccount/src/some_kernel_module/ modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=/home/myaccount/src/some_kernel_module/ clean
但这不是答案。我不想在我的 Makefile 中使用这个绝对路径。
【问题讨论】: