我只是在经过多次努力后才重新安装perl / Tk模块。我意识到我不明白dmake或make等实际上在做什么。
我正在使用安装在C:\ strawberry。的草莓perl。
Fisrt我将模块解压缩到另一个目录并运行perl makefile.pl,它工作正常。然后我尝试了dmake哪个不起作用。我想那些了解其工作原理的人会很明显。
当我将模块放置为C:\ strawberry的子目录时,我可以运行perl makefile.pl,dmake,dmake test和dmake install。
我的猜测是dmake install正在向解释器添加一些可执行文件,并且工作模块必须位于子目录中。是否有任何文章可以解释它在做什么?
答案 0 :(得分:5)
当您看到Makefile.PL文件时,这意味着它是一个安装系统为ExtUtils::MakeMaker的模块。
EU :: MM是安装Perl模块的经典系统,可追溯到CPAN的曙光。它依赖于这样一个事实:程序make
- 一个通用的,强大的依赖关系跟踪工具 - 几乎在每个unix系统上都可用,并且依赖于各种各样的unixy模式和行为。
Makefile.PL是模块作者维护的Perl脚本。它从Perl本身读取有关系统的信息,并使用它来创建Makefile。此Makefile指示make
要执行的操作。有关make
的详细信息,请查看The Wikipedia page on Make。基本上,make
所做的是查看规则,告诉它要制作哪些文件。它以递归方式查看创建“目标”的所有规则(例如,当您键入make install时,'install'是目标)然后跟随它们直到(a)它到达目标或(b)它可怕地爆炸。我们都希望(a),但(b)也是如此。 :)
不幸的是,在Windows-land中,我们没有make。或编译器。通常,无论如何。
dmake
是一个make
程序,恰好在Windows上运行良好。 Strawberry Perl将您在Windows上类似unix的环境中实际构建所需的所有内容打包成一个方便的软件包,从而实现您实际可能实现的目标。
答案 1 :(得分:2)
这可能过于字面意思,但dmake
有一个-v
选项(详细)
dmake -v
dmake -v target
将显示有关dmake
在安装期间正在执行的操作的信息。