gmake 会自动定义 $(INSTALL) 吗?

does gmake automatically define $(INSTALL)?

gmake 似乎没有 $(INSTALL) 的值。这应该由用户定义吗?

$(CC) 工作正常。我查看的大多数示例 Makefile 都没有 $(INSTALL)...

的明确定义

如果必须由用户定义,最佳做法是什么(别名 _PROGRAM_DATA 除外)?为什么更喜欢 install 而不是 cp

生成文件
helloworld:
        echo 'hello, world' >helloworld

install:
        $(INSTALL) ${HOME}/ helloworld
日志
$ make helloworld
$ make install
 /home/<username>/ helloworld
make: /home/kevins/: Permission denied
make: *** [Makefile:5: install] Error 127
版本信息

GNU Make 4.3
Built for x86_64-pc-linux-gnu

没有为 INSTALL 定义默认值。你可以通过运行ning:

查看所有的默认规则和变量
make -p -f/dev/null

install 还是 cp 更合适完全取决于您的用例。 installcp 做得更多。但是,除了 cp 之外,您还可以 运行 其他命令来处理这些事情,并且 install 并非在每个系统上都可用。所以,这是最适合你的。