0

我正在阅读一本名为 Curious Moon 的编码教程/书。其中一项任务是规范化和加载来自 Postgres 表中的 CSV 文件的数据。数据库名称为“enceladus”,表名称为“master_plan”。有人告诉我用make它来做这件事。我不知道如何在 PowerShell 中运行 Makefile。

我在运行 Windows 10 的 Windows 笔记本电脑上安装了 GNUWin32 make.exe。我使用 PowerShell 运行make.exe. 我通过运行notepad $profile并保存New-Item alias:make -Value 'C:\Program Files (x86)\GnuWin32\bin\make.exe'在文件中来做到这一点。我给它一个新别名,因为我收到一条错误消息。现在,当我这样调用别名时:

PS C:\Users\Sabrina> 使

我收到此错误:

make: *** 没有指定目标,也没有找到 makefile。停止。

我用 sublime 编写了 Makefile 并将其保存为 makefile 扩展名。make.exe它与 Makefile位于同一文件夹 'C:\Program Files (x86)\GnuWin32\bin' 中。我试着运行它

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

然后我得到错误

make: Makefile: 没有这样的文件或目录

我不知道如何让makefile打开和运行。

这是我在 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)
4

1 回答 1

1

Makefile在 中C:\Program Files (x86)\GnuWin32\bin,但您当前的工作目录是C:\Users\Sabrina. 当运行makemake -f Makefile命令在当前工作目录中查找 Makefile 时,而不是在可执行文件所在的目录中。

将 Makefile 放入您当前的工作目录,问题就会消失。

Move-Item 'C:\Program Files (x86)\GnuWin32\bin\Makefile' .
make
于 2019-01-22T19:34:31.277 回答