【问题标题】:does gmake automatically define $(INSTALL)?gmake 会自动定义 $(INSTALL) 吗?
【发布时间】:2022-01-20 06:45:55
【问题描述】:

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
为 x86_64-pc-linux-gnu 构建

【问题讨论】:

    标签: gnu-make


    【解决方案1】:

    没有为INSTALL 定义默认值。您可以通过运行查看所有默认规则和变量:

    make -p -f/dev/null
    

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

    【讨论】:

    • install 中是否有任何(常用)功能无法使用其他工具复制?
    • 我不知道:这可以从 install 经常被实现为 shell 脚本的事实中看出 :)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-07
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    相关资源
    最近更新 更多