首页 > 解决方案 > Microsoft WSL 发出问题

问题描述

我正在尝试在 WSL 中构建一个项目。相同的项目在 ubuntu18.04 VM 中编译,但不在 WSL ubuntu18.04 中。我看到的问题是 make 无法在 makefile 中包含 MakefileCommom。makefile 内容如下:

-include ~/MakefileCommon
RM := rm -rf
all:
    $(MAKE) -f ./$(MAKEFILE_TARGET) $@
clean:  
    $(MAKE) -f ./$(MAKEFILE_TARGET) $@
image:
    $(MAKE) -f ./$(MAKEFILE_TARGET) $@
uninstall:
    $(MAKE) -f ./$(MAKEFILE_TARGET) $@

-include ../makefile.targets

我正在使用的命令是:

make -C builds clean all

我得到的错误是:

make -f ./ clean
make[1]: *** ./: Is a directory.  Stop.

因此,我看到,$(MAKEFILE_TARGET) 是被导入的注释。导入语句在 MakefileCommon

标签: makefilewindows-subsystem-for-linuxubuntu-18.04

解决方案


路径名中的波浪号~是一个神奇的字符,它在 POSIX 系统上扩展到用户的主目录。我不知道它在 Windows 中扩展到什么,但我猜这不是你所期望的。尝试在此处放置真实路径而不是使用~. 您还可以运行make -d并检查输出以查看它使用的路径名MakefileCommon


推荐阅读