Ошибка: make: *** Нет правила для создания цели `makefile '.Стоп.используя Powershell и Gnuwin32 - PullRequest
0 голосов
/ 22 января 2019

Я работаю над учебником / книгой по кодированию под названием Curious Moon. Одним из назначений является нормализация и загрузка данных из файла CSV, помещенного в таблицу Postgres. Имя базы данных - "enceladus", а имя таблицы - "master_plan". Мне сказали использовать make, чтобы сделать это. Я не могу понять, как запустить Makefile в PowerShell.

Я установил GNUWin32 с make.exe на свой ноутбук с Windows, работающий под управлением Windows 10. Я использовал PowerShell для запуска make.exe. Я сделал это, запустив notepad $profile и сохранив New-Item alias:make -Value 'C:\Program Files (x86)\GnuWin32\bin\make.exe' в файле. Я дал ему новый псевдоним, потому что я получал сообщение об ошибке. Теперь, когда я называю псевдоним так:

PS C:\Users\Sabrina> make

Я получаю эту ошибку:

make: *** Не указаны цели и не найден make-файл. Стоп.

Я написал Makefile в sublime и сохранил его как расширение make-файла. Он находится в той же папке «C: \ Program Files (x86) \ GnuWin32 \ bin», что и make.exe, и называется Makefile. Я попытался запустить его как

PS C:\Users\Sabrina> make -f Makefile

и тогда я получаю ошибку

make: Makefile: нет такого файла или каталога

Я не уверен, как открыть и запустить make-файл.

Это мой код в Makefile:

DB=enceladus
BUILD=${CURDIR}/build.sql
SCRIPTS=${CURDIR}/scripts
CSV='${CURDIR}/data/master_plan.csv'
MASTER=$(SCRIPTS)/import.sql
NORMALIZE = $(SCRIPTS)/normalize.sql
all: normalize
    psql $(DB) -f $(BUILD)
master: 
    @cat $(MASTER) >> $(BUILD)
import: master 
    @echo "COPY import.master_plan FROM $(CSV) WITH DELIMITER ',' HEADER CSV;" >> $(BUILD)
normalize: import
    @cat $(NORMALIZE) >> $(BUILD)
clean:
    @rm -rf $(BUILD)

1 Ответ

0 голосов
/ 22 января 2019

Makefile находится в C:\Program Files (x86)\GnuWin32\bin, но ваш текущий рабочий каталог - C:\Users\Sabrina.При запуске make или make -f Makefile команда ищет Makefile в текущем рабочем каталоге, а не в каталоге, где находится исполняемый файл.

Поместите Makefile в текущий рабочий каталог, и проблема исчезнет..

Move-Item 'C:\Program Files (x86)\GnuWin32\bin\Makefile' .
make
...