【问题标题】:Perl: nmake not foundPerl:找不到nmake
【发布时间】:2015-11-04 03:42:41
【问题描述】:

我已经看到两个与我的问题相似的主题,但都没有对我有帮助的答案。

我得到了一台运行 Windows 7 Enterprise SP1 64 位的新笔记本电脑,我在其上安装了 Active Perl 5 'version 20, subversion 2 (v5.20.2) built for MSWin32-x64-multi-thread' 和Microsoft Visual Studio Express 2015。

'C:\perl64' 和 'c:\program files (32)\Microsoft Visual Studio 14.0\VC\bin' 都在我的系统路径中 [当然没有单引号] 如果我运行 nmake没有任何参数且 pwd 中没有 makefile 的命令行我收到以下消息,明确表明可以找到 nmake:

Microsoft (R) 程序维护实用程序版本 14.00.23026.0 版权所有 (C) 微软公司。保留所有权利。

NMAKE:致命错误 U1064:未找到 MAKEFILE 且未指定目标 停下来。

到目前为止,一切都很好。现在,当我运行 Makefile.PL 开始安装新包时,我收到以下消息:

您的电脑上似乎没有 nmake.exe 或 dmake.exe PATH,因此您将无法从 Makefile 执行命令。 你可以通过运行 Perl 包管理器来安装 dmake.exe:

ppm install dmake

正在检查您的套件是否完整...看起来不错 dmake风格的Makefile

我不明白并想解决的是为什么 Perl 在我的 PATH 环境中看不到 nmake?过去,我曾在许多不同的机器上安装过相同的软件包——其中唯一真正的变化是 Perl 和 MSVS 版本的版本号以及 Perl 的位版本 [在几乎所有情况下,我'一直在工作 32 位而不是 64],但我不明白为什么其中任何一个都会对 Perl 无法识别我的 %PATH% 中的 MSVS bin 目录产生影响

安装 dmake 或 minGW 对我来说不是一个解决方案:我已经完成了这两个操作并且遇到了一系列我以前从未遇到过的错误,所以我真的很想找到一个解决方案,让我使用 nmake - 如果之后我仍然遇到错误,我会在遇到它们时解决这些问题。

谢谢

【问题讨论】:

  • 我无法帮助您解决实际问题,但我安装了Strawberry Perl,它附带了一个开箱即用的完整开发工具链(编译器、make 等)。跨度>
  • 谢谢。在寻找这个问题的答案时,我在其他地方看到了 Strawberry Perl 的建议,但之前没有听说过。出于好奇,我可能会用 Strawberry Perl 设置另一台笔记本电脑进行测试;既是为了解决这个问题,也是为了确保我的其他一些脚本继续按预期工作(不明白为什么不这样做,但通常是你看不到的)。
  • [稍后...] Strawberry Perl 引发的错误比它修复的要多。还在尝试。
  • @melpmene,他特意说不想用dmake/mingw链
  • 确实如此,但我还是尝试了。

标签: perl makefile nmake


【解决方案1】:

编辑 C:\Perl64\lib\ExtUtils\MakeMaker.pm 并添加“require Module::Build;”在“要求出口商”之前;线。顶部现在应该是这样的:

# $Id$
package ExtUtils::MakeMaker;

use strict;

BEGIN {require 5.006;}

require Module::Build; # THIS IS ADDED
require Exporter;
use ExtUtils::MakeMaker::Config;
use ExtUtils::MakeMaker::version; # ensure we always have our fake version.pm
use Carp;
use File::Path;

这为我解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 2019-08-26
    • 1970-01-01
    • 2012-05-28
    • 2011-06-19
    相关资源
    最近更新 更多