Windows 从源代码构建 PhantomJS-2

Building PhantomJS-2 from source on Windows

我正在尝试基于这些 instructions.

在 Windows 8.1 x64 上从源代码构建 PhantomJS 2 的开发版本

但是我得到以下错误

'mingw32-make' is not recognized as an internal or external command, operable program or batch file.
'nmake' is not recognized as an internal or external command, operable program or batch file.
Error: "qmake.exe is missing Can't proceed."

我不确定如何解决这个问题,请有人帮忙 and/or 给出如何在 Windows x64 上构建它的步骤?

到目前为止我做了什么....

  1. 已安装 Perl、Python、Ruby 和 Git 确保它们都在 PATH 环境变量中
  2. 已安装 qt-opensource-windows exe
  3. 在Visual Studio命令提示符中输入了以下命令:

尝试构建的最后一步出现错误。

我还安装了 mingw32-make-3.80.0-3.exe 并将路径 C:\mingw\bin\mingw32-make.exe 添加到 PATH 环境变量中,但仍然报错。

完整命令提示符input/output如下:

*************************************
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\o\Documents\GitHub>git clone git://github.com/ariya/phantomjs.git
Cloning into 'phantomjs'...
remote: Counting objects: 56882, done.
remote: Total 56882 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (56882/56882), 113.63 MiB | 1.59 MiB/s, done.
Resolving deltas: 100% (29939/29939), done.
Checking connectivity... done.
Checking out files: 100% (25015/25015), done.

C:\Users\o\Documents\GitHub>cd phantomjs

C:\Users\o\Documents\GitHub\phantomjs>cd src/qt

C:\Users\o\Documents\GitHub\phantomjs\src\qt>git clone https://github.com/Vitall
ium/phantomjs-3rdparty-win
Cloning into 'phantomjs-3rdparty-win'...
remote: Counting objects: 1073, done.
remote: Total 1073 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1073/1073), 77.26 MiB | 1.67 MiB/s, done.
Resolving deltas: 100% (376/376), done.
Checking connectivity... done.

C:\Users\o\Documents\GitHub\phantomjs\src\qt>rename phantomjs-3rdparty-win 3rdparty

C:\Users\o\Documents\GitHub\phantomjs\src\qt>

C:\Users\o\Documents\GitHub\phantomjs\src\qt>cd ../../

C:\Users\o\Documents\GitHub\phantomjs>build.cmd

Build type: release

GIT found. Getting 3rd party libraries.
LIB: C:\Users\o\Documents\GitHub\phantomjs\src\qtrdparty\openssl\lib;C:\Users\
o\Documents\GitHub\phantomjs\src\qtrdparty\libicu\lib;C:\Users\o\Documents\Git
Hub\phantomjs\src\qtrdparty\libxml\lib;
INCLUDE: C:\Users\o\Documents\GitHub\phantomjs\src\qtrdparty\openssl\include;C
:\Users\o\Documents\GitHub\phantomjs\src\qtrdparty\libicu\include;C:\Users\o\D
ocuments\GitHub\phantomjs\src\qtrdparty\libxml\include\libxml2;
'mingw32-make' is not recognized as an internal or external command,
operable program or batch file.
'nmake' is not recognized as an internal or external command,
operable program or batch file.


Error: "qmake.exe is missing Can't proceed."

Contact vitaliy.slobodin@gmail.com

C:\Users\o\Documents\GitHub\phantomjs>

*************************************

确保您 %PATH% 中 qmake 和 nmake 的路径正确 对我来说是:

Path to qmake - C:\Qt\Qt5.3.2.3\msvc2013_64\bin 
Path to nmake - C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin

可能与 'mingw32-make'

相同

Phantomjs的源码我已经仔细查看过了,好像不需要下载安装qt,它已经是源码的一部分了。 要构建 PhantomJS 2,您需要:

  1. 设置以下文件 nmake.exe、rc.exe 和 mt.exe 的路径 - C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin ;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
  2. 环境变量:
    • INCLUDE:VC & Windows SDK 包含文件夹 - C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\include
    • LIB:VC & Windows SDK Lib 文件夹 - C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\lib

此外,在开始构建之前,您需要 运行 vcvarsall.bat 使用正确的配置,在我的例子中,我使用了 amd64_x86 参数 为了 运行 构建,我执行了以下步骤: - git 克隆 git://github.com/ariya/phantomjs.git - CD phantomjs - 构建

对于那些使用 Cygwin 的用户,请确保 windows 在 Cygwin 二进制文件之前的 PATH 中安装了 perl。

我遇到了所有步骤都正常的问题,但是当我使用 Cygwin perl 时,文件路径的格式为 /cygdrive/c/.. windows 不理解并且所以在 build.cmd.

中没有有用的输出而失败

这是由 运行 preconfig.cmd 在 phantomjs/src/qt

中找到的

将可执行文件 mingw32-make.exe 放入 phantomjs\src\qtrdparty\gnuwin32\bin 帮我解决了这个问题。