Я работаю над учебником/книгой по кодированию под названием 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 в возвышенном виде и сохранил его как расширение makefile. Он находится в той же папке «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)
Makefile
(илиmakefile
; регистр здесь не имеет значения)? Я подозреваю, что когда вы говорите сохранил его как расширение make-файла, к имени файла добавляется расширение, например.mk
или.mak
, или что-то в этом роде. В вашем powershell запуститеdir makefile*.*
и посмотрите, что он напечатает. - person MadScientist   schedule 22.01.2019PS C:\Users\Sabrina>
- person tealcoding   schedule 27.01.2019