команда make возвращает корневую папку вместо текущей папки в WSL2 при включении с ОБОЛОЧКОЙ

#makefile #gnu-make #windows-subsystem-for-linux

#makefile #gnu-make #windows-subsystem-for-linux

Вопрос:

Я пытаюсь запустить некоторые базовые целевые объекты makefile, но кажется, что make сам возвращает корневую папку / вместо папки, в которой я нахожусь. Это приводит к тому, что все файлы не будут найдены, поскольку он пытается выполнить поиск в корневой папке вместо текущей папки, даже если CURDIR возвращает правильно.

Я использую WSL2, Ubuntu 20.04, использую GNU Make 4.2.1 с oh-my-zsh

Тестирование:

 include Test.mk

wsl: ## Testing WSL make targets
    pwd
    echo "${CURDIR}"
 

Test.mk:

 SHELL=/bin/bash
 

Вывод:

 > make wsl
pwd
/
echo "/home/limonkufu/test-wsl"
/home/limonkufu/test-wsl
 

Если вы закомментируете оператор include или SHELL, он работает как ожидалось ( /home/limonkufu/test-wsl также выводится pwd как вывод)

Комментарии:

1. Как вы работаете make ? Вы уверены, что выполняете правильное make ?

2. просто запуск make и which make возврат /usr/bin/make , поэтому я думаю, что это правильный

3. То, что вы указали, не может быть результатом makefile, который вы показываете здесь. Во-первых, сами команды не печатаются, и make всегда будет печатать команды. Пожалуйста, покажите точную команду, которую вы ввели, полный результат, который вы получили (используйте вырезать и вставить, чтобы убедиться, что нет опечаток), и файл makefile, который вы использовали, и укажите имя файла makefile.

4. Я пропустил фактические команды, как вы сказали, и теперь исправил это в своем сообщении, извините.

5. Если вы введете pwd в командной строке, что она скажет? Это похоже на проблему wsl.