Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何使用Makefile使文件可执行_Perl_Makefile - Fatal编程技术网

Perl 如何使用Makefile使文件可执行

Perl 如何使用Makefile使文件可执行,perl,makefile,Perl,Makefile,我想使用Makefile复制一个特定的文件,然后使这个文件可执行。如何做到这一点? 我要复制的文件是一个.pl文件。 对于复制,我使用通用cp-rp命令。这是成功的。但是现在我想使用Makefile使这个文件可执行,使用cp和chmod,而不是使用install命令,这是一种不好的做法 all: install -m 0777 hello ../hello 您可以将-m选项与install一起使用来设置权限模式,甚至请注意,使用install不仅可以保留权限,还可以保留文件的所有者 您

我想使用Makefile复制一个特定的文件,然后使这个文件可执行。如何做到这一点? 我要复制的文件是一个.pl文件。
对于复制,我使用通用cp-rp命令。这是成功的。但是现在我想使用Makefile使这个文件可执行,使用
cp
chmod
,而不是使用
install
命令,这是一种不好的做法

all:
    install -m 0777 hello ../hello
您可以将
-m
选项与install一起使用来设置权限模式,甚至请注意,使用
install
不仅可以保留权限,还可以保留文件的所有者

您仍然可以相应地使用chmod,但这将是一种不好的做法

all:
    cp hello ../hello
    chmod +x ../hello
更新:
install vs cp

  • cp只需使用当前权限复制文件,不仅安装副本,还可以将perms/所有权更改为arg标志。(这就是您的要求)
  • 一个显著的区别是cp截断目标文件,并开始将数据从源文件复制到目标文件中。另一方面,install首先删除目标文件。 这一点很重要,因为如果目标文件已经在使用中,那么在使用该文件的人身上可能会发生不好的事情,以防您在该文件上添加了一个新文件。e、 g.覆盖正在运行的可执行文件可能会失败。截断现有进程正忙于读取/写入的数据文件可能会导致非常奇怪的行为。如果您只是像install一样首先删除目标文件,那么事情会像正常情况一样继续进行—在所有进程关闭该文件之前,删除的文件实际上不会被删除
  • 有关更多详细信息,请查看这些


    您是在谈论
    进行安装
    还是要在源代码树中复制该文件并使用它构建进一步的内容?我想在我的源代码树中复制该文件并使用它构建进一步的内容。并使此文件可执行(我可以使用chmod执行此操作吗)如果是,如何?您可以直接在Makefile中使用chmod命令使用
    安装
    有什么好处?我知道这是惯例,但为什么?