Building PhantomJS-2 from source on Windows

2019-03-31 12:41发布

问题:

I'm attempting to build the development version of PhantomJS 2 from source on Windows 8.1 x64 based on these instructions.

However I get the following errors

'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."

I'm unsure how to fix this, please can someone help and/or give steps on how to build this on Windows x64?

What I have done so far....

  1. Installed Perl, Python, Ruby, and Git ensured all are in PATH environment variable
  2. Installed qt-opensource-windows exe
  3. In Visual Studio Command Prompt have entered the following commands:

    • git clone git://github.com/ariya/phantomjs.git
    • cd phantomjs
    • cd src/qt
    • git clone https://github.com/Vitallium/phantomjs-3rdparty-win
    • rename phantomjs-3rdparty-win 3rdparty
    • cd ../../
    • build.cmd

And the last step attempting to build gives the errors.

I also installed mingw32-make-3.80.0-3.exe and added the path C:\mingw\bin\mingw32-make.exe to the PATH environment variable which still gives the error.

Full command prompt input/output is as follows:

*************************************
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\qt\3rdparty\openssl\lib;C:\Users\
o\Documents\GitHub\phantomjs\src\qt\3rdparty\libicu\lib;C:\Users\o\Documents\Git
Hub\phantomjs\src\qt\3rdparty\libxml\lib;
INCLUDE: C:\Users\o\Documents\GitHub\phantomjs\src\qt\3rdparty\openssl\include;C
:\Users\o\Documents\GitHub\phantomjs\src\qt\3rdparty\libicu\include;C:\Users\o\D
ocuments\GitHub\phantomjs\src\qt\3rdparty\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>

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

回答1:

Make sure that path to qmake & nmake are correct in you %PATH% For me it was:

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

Possible the same for 'mingw32-make'

I've double checked on Phantomjs source code and it seems that you don't need to download and install qt, it is already part of the source code. To build PhantomJS 2 you need:

  1. Set path to following files nmake.exe, rc.exe and to mt.exe - C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
  2. ENV Variables:
    • INCLUDE: VC & Windows SDK include folder - 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 folder - C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\lib

Also before start build you need to run vcvarsall.bat with correct configuration, In my case I used amd64_x86 parameter To run build I made following steps: - git clone git://github.com/ariya/phantomjs.git - cd phantomjs - build



回答2:

For those using Cygwin, make sure that a windows install of perl is in PATH before the Cygwin binaries.

I had the issue where all the steps were going okay but as I was using Cygwin perl the file paths were in the format of /cygdrive/c/.. which windows doesn't understand and so fails with no useful output in build.cmd.

This was found by running the preconfig.cmd inside phantomjs/src/qt



回答3:

Putting the executable mingw32-make.exe inside phantomjs\src\qt\3rdparty\gnuwin32\bin solved this issue for me.