ariya / phantomjs

Scriptable Headless Browser
http://phantomjs.org
BSD 3-Clause "New" or "Revised" License
29.44k stars 5.76k forks source link

Investigate 64-bit Windows build #11991

Closed ariya closed 7 years ago

ariya commented 10 years ago

For 1.x we always build the Windows executable in 32-bit mode. For 2.x, let's take a look at the possibility of providing the 64-bit version.

vitallium commented 10 years ago

AFAIK, 64-bit version is supported in 2.x. But I didn't tested it yet.

ashkulz commented 10 years ago

You can build a 64-bit version for 1.x right now, I have done it for wkhtmltopdf. Do you want me to submit a PR for the changes?

joevolcano commented 10 years ago

I would like to use the Windows 64bit version of the PhantomJS Library. I have made several attempts to compile it as 64bit myself however I get several exceptions. Can you point me to the right place for instructions on how to compile this? or email me a 64bit version of the PhantomJS.exe for Windows? I am having memory problems with the 32bit version. Is there a way I can reduce memory pressure by turning down the number of concurrent requests made from the webkit to one at a time? I am working with some high res images in svg html and trying to render the output.

ashkulz commented 10 years ago

@joevolcano: you'll need to have a 64-bit environment, it is best if you setup Windows SDK 7.1. You will also need to cherry-pick the following patches to your repository:

The last two patches have been upstreamed but are unlikely to be a part of the upcoming 4.8.6 release and are required only if you are building with VS2012/VS2013. @Vitallium: you might be interested in the fix for QTBUG-34705.

If you want OpenSSL supprort, then you'll need to use the following instructions instead (the 64-bit assembler is always available):

perl Configure VC-WIN64A --prefix=C:\openssl
ms\do_ms
nmake -f ms\nt.mak install
joevolcano commented 10 years ago

Thank you I will try this. On Apr 17, 2014 8:44 PM, "Ashish Kulkarni" notifications@github.com wrote:

@joevolcano https://github.com/joevolcano: you'll need to have a 64-bit environment, it is best if you setup Windows SDK 7.1http://qt-project.org/wiki/Category:Tools::msvc. You will also need to cherry-pick the following patches to your repository:

  • wkhtmltopdf/qt@a6aa2cehttps://github.com/wkhtmltopdf/qt/commit/a6aa2ce013e41d66788239d04a695ed8d9d2cc85(fix 64-bit build)
  • qtproject/qt@1bed550https://github.com/qtproject/qt/commit/1bed55097b22f2071af71ebefc9897816977fd14(fix building on VS2012/2013)
  • qtproject/qt@45d0c50https://github.com/qtproject/qt/commit/45d0c506683f98cc981dc2623960334776d11c3c(fix building on VS2013)

The last two patches have been upstreamed but are unlikely to be a part of the upcoming 4.8.6 release and are required only if you are building with VS2012/VS2013. @Vitallium https://github.com/Vitallium: you might be interested in the fix for QTBUG-34705.

If you want OpenSSL supprort, then you'll need to use the following instructions instead (the 64-bit assembler is always available):

perl Configure VC-WIN64A --prefix=C:\openssl ms\do_ms nmake -f ms\nt.mak install

— Reply to this email directly or view it on GitHubhttps://github.com/ariya/phantomjs/issues/11991#issuecomment-40777912 .

joevolcano commented 10 years ago

I am getting a couple errors from NMAKE and I am not sure why. Any ideas? I have searched around and found articles talking about long paths and spaces in the path names but that doesnt really make sense. the cl.exe and nmake.exe is there and the path looks like it is in quotes...

this is the output from running preconfig.cmd "Generating Code... NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0 \VC\BIN\amd64\cl.EXE"' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0 \VC\BIN\amd64\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: 'cd' : return code '0x2' Stop. " [image: Inline image 1]

On Thu, Apr 17, 2014 at 10:04 PM, Runner Runner runner2557@gmail.comwrote:

Thank you I will try this. On Apr 17, 2014 8:44 PM, "Ashish Kulkarni" notifications@github.com wrote:

@joevolcano https://github.com/joevolcano: you'll need to have a 64-bit environment, it is best if you setup Windows SDK 7.1http://qt-project.org/wiki/Category:Tools::msvc. You will also need to cherry-pick the following patches to your repository:

  • wkhtmltopdf/qt@a6aa2cehttps://github.com/wkhtmltopdf/qt/commit/a6aa2ce013e41d66788239d04a695ed8d9d2cc85(fix 64-bit build)
  • qtproject/qt@1bed550https://github.com/qtproject/qt/commit/1bed55097b22f2071af71ebefc9897816977fd14(fix building on VS2012/2013)
  • qtproject/qt@45d0c50https://github.com/qtproject/qt/commit/45d0c506683f98cc981dc2623960334776d11c3c(fix building on VS2013)

The last two patches have been upstreamed but are unlikely to be a part of the upcoming 4.8.6 release and are required only if you are building with VS2012/VS2013. @Vitallium https://github.com/Vitallium: you might be interested in the fix for QTBUG-34705.

If you want OpenSSL supprort, then you'll need to use the following instructions instead (the 64-bit assembler is always available):

perl Configure VC-WIN64A --prefix=C:\openssl ms\do_ms nmake -f ms\nt.mak install

— Reply to this email directly or view it on GitHubhttps://github.com/ariya/phantomjs/issues/11991#issuecomment-40777912 .

joevolcano commented 10 years ago

Here is my config from that command

This is the Qt for Windows Open Source Edition.

You have already accepted the terms of the license.

WARNING: Using static linking will disable the WebKit module.

Environment: INCLUDE= C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\ATLMFC\INCLUDE C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include

LIB=
  C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\LIB\amd64
  C:\Program Files (x86)\Microsoft Visual Studio

10.0\VC\ATLMFC\LIB\amd64 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64

PATH=
  C:\Program Files (x86)\Microsoft F#\v4.0\
  C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\
  C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\x86_amd64
  C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN
  C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools
  C:\Windows\Microsoft.NET\Framework\v4.0.30319
  C:\Windows\Microsoft.NET\Framework\v3.5
  C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\VCPackages
  C:\Program Files (x86)\HTML Help Workshop
  C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team

Tools\Performance Tools C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin C:\Perl64\site\bin C:\Perl64\bin C:\Program Files (x86)\AMD APP\bin\x86_64 C:\Program Files (x86)\AMD APP\bin\x86 C:\Windows\system32 C:\Windows C:\Windows\System32\Wbem C:\Windows\System32\WindowsPowerShell\v1.0\ C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86 C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64 C:\Program Files\Intel\WiFi\bin\ C:\Program Files\Common Files\Intel\WirelessCommon\ C:\Program Files\TortoiseSVN\bin C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\ C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ C:\Program Files\Microsoft SQL Server\110\DTS\Binn\ C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudi o\ C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAss emblies\ C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\ C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\ C:\Program Files\Microsoft SQL Server\100\Tools\Binn\ C:\Program Files\Microsoft SQL Server\100\DTS\Binn\ C:\Program Files\nodejs\ C:\Program Files (x86)\Git\cmd C:\Program Files\TortoiseGit\bin C:\Program Files\Microsoft\Web Platform Installer\ C:\Users\ncurry\AppData\Roaming\npm You are licensed to use this software under the terms of the GNU GPL version 3.Y ou are licensed to use this software under the terms of the Lesser GNU LGPL vers ion 2.1. See C:/src/src/qt3

or C:/src/src/qtL

Configuration: minimal-config small-config medium-config large-config full-config release Qt Configuration: release zlib gif no-tiff jpeg png no-mng accessibility s60 openssl-linked ipv6 native-gestures svg concurrent minimal-config small-config medium-config large-config full-config

QMAKESPEC...................win32-msvc2010 (detected) Architecture................windows Maketool....................nmake Debug symbols...............no Link Time Code Generation...no Accessibility support.......yes STL support.................no Exception support...........no RTTI support................yes MMX support.................yes 3DNOW support...............yes SSE support.................yes SSE2 support................yes IWMMXT support..............no OpenGL support..............no OpenVG support..............no OpenSSL support.............linked QtDBus support..............no QtXmlPatterns support.......no Phonon support..............no QtMultimedia support........no WebKit support..............no Declarative support.........no QtScript support............no QtScriptTools support.......no Graphics System.............raster Qt3 compatibility...........no DirectWrite support.........no

Third Party Libraries: ZLIB support............qt GIF support.............yes TIFF support............no JPEG support............yes PNG support.............yes MNG support.............no FreeType support........no

Styles: Windows.................yes Windows XP..............yes Windows Vista...........yes Plastique...............yes Cleanlooks..............yes Motif...................yes CDE.....................yes Windows CE..............no Windows Mobile..........no S60.....................no

Sql Drivers: ODBC....................no MySQL...................no OCI.....................no PostgreSQL..............no TDS.....................no DB2.....................no SQLite..................yes (qt) SQLite2.................no InterBase...............no

Sources are in..............C:\src\src\qt Build is done in............C:\src\src\qt Install prefix..............C:\src\src\qt Headers installed to........C:\src\src\qt\include Libraries installed to......C:\src\src\qt\lib Plugins installed to........C:\src\src\qt\plugins Imports installed to........C:\src\src\qt\imports Binaries installed to.......C:\src\src\qt\bin Docs installed to...........C:\src\src\qt\doc Data installed to...........C:\src\src\qt Translations installed to...C:\src\src\qt\translations Examples installed to.......C:\src\src\qt\examples Demos installed to..........C:\src\src\qt\demos

Defines.....................QT_NO_GRAPHICSVIEW QT_NO_GRAPHICSEFFECT QT_NOSTYLE CDE QT_NO_STYLE_CLEANLOOKS QT_NO_STYLE_MOTIF QT_NO_STYLE_PLASTIQUE Include paths...............c:\OpenSSL\include Additional libraries........-Lc:\OpenSSL\lib -llibeay32 -lssleay32 WARNING: Using static linking will disable the use of plugins. Make sure you compile ALL needed modules into the library. Creating qmake...

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 Copyright (C) Microsoft Corporation. All rights reserved.

Creating makefiles in src... Generating Visual Studio project files... Reading C:/src/src/qt/src/tools/bootstrap/bootstrap.pro Reading C:/src/src/qt/src/tools/moc/moc.pro Reading C:/src/src/qt/src/tools/rcc/rcc.pro Reading C:/src/src/qt/src/tools/uic/uic.pro Reading C:/src/src/qt/src/winmain/winmain.pro Reading C:/src/src/qt/src/corelib/corelib.pro Reading C:/src/src/qt/src/xml/xml.pro Reading C:/src/src/qt/src/network/network.pro Reading C:/src/src/qt/src/gui/gui.pro Generating Makefiles... Reading C:/src/src/qt/src/tools/bootstrap/bootstrap.pro Reading C:/src/src/qt/src/tools/moc/moc.pro Reading C:/src/src/qt/src/tools/rcc/rcc.pro Reading C:/src/src/qt/src/tools/uic/uic.pro Reading C:/src/src/qt/src/winmain/winmain.pro Reading C:/src/src/qt/src/corelib/corelib.pro Reading C:/src/src/qt/src/xml/xml.pro Reading C:/src/src/qt/src/network/network.pro Reading C:/src/src/qt/src/gui/gui.pro

Qt is now configured for building. Just run nmake. To reconfigure, run nmake confclean and configure.

On Fri, Apr 18, 2014 at 9:45 AM, Runner Runner runner2557@gmail.com wrote:

I am getting a couple errors from NMAKE and I am not sure why. Any ideas? I have searched around and found articles talking about long paths and spaces in the path names but that doesnt really make sense. the cl.exe and nmake.exe is there and the path looks like it is in quotes...

this is the output from running preconfig.cmd

[image: Inline image 1]

On Thu, Apr 17, 2014 at 10:04 PM, Runner Runner runner2557@gmail.comwrote:

Thank you I will try this. On Apr 17, 2014 8:44 PM, "Ashish Kulkarni" notifications@github.com wrote:

@joevolcano https://github.com/joevolcano: you'll need to have a 64-bit environment, it is best if you setup Windows SDK 7.1http://qt-project.org/wiki/Category:Tools::msvc. You will also need to cherry-pick the following patches to your repository:

  • wkhtmltopdf/qt@a6aa2cehttps://github.com/wkhtmltopdf/qt/commit/a6aa2ce013e41d66788239d04a695ed8d9d2cc85(fix 64-bit build)
  • qtproject/qt@1bed550https://github.com/qtproject/qt/commit/1bed55097b22f2071af71ebefc9897816977fd14(fix building on VS2012/2013)
  • qtproject/qt@45d0c50https://github.com/qtproject/qt/commit/45d0c506683f98cc981dc2623960334776d11c3c(fix building on VS2013)

The last two patches have been upstreamed but are unlikely to be a part of the upcoming 4.8.6 release and are required only if you are building with VS2012/VS2013. @Vitallium https://github.com/Vitallium: you might be interested in the fix for QTBUG-34705.

If you want OpenSSL supprort, then you'll need to use the following instructions instead (the 64-bit assembler is always available):

perl Configure VC-WIN64A --prefix=C:\openssl ms\do_ms nmake -f ms\nt.mak install

— Reply to this email directly or view it on GitHubhttps://github.com/ariya/phantomjs/issues/11991#issuecomment-40777912 .

vitallium commented 10 years ago

@ashkulz Great! I'll check it out! Thank you!

joevolcano commented 10 years ago

this is the output right before it explodes...

....\JavaScriptCore\wtf/text/StringConcatenate.h(73) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/text/StringConcatenate.h(104) : warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/text/StringConcatenate.h(125) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/DateMath.h(208) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(74) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(76) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(78) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\interpreter\RegisterFile.h(130) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data ....\JavaScriptCore\interpreter\CallFrame.h(124) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\runtime\PropertyMapHashTable.h(424) : warning C4267: 'return' : conversion from 'size_t' to 'unsigned int', possible loss of data UString.cpp ....\JavaScriptCore\wtf/text/StringConcatenate.h(73) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/text/StringConcatenate.h(104) : warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/text/StringConcatenate.h(125) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/DateMath.h(208) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(74) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(76) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(78) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\interpreter\RegisterFile.h(130) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\interpreter\CallFrame.h(124) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\runtime\PropertyMapHashTable.h(424) : warning C4267: 'return' : conversion from 'size_t' to 'unsigned int', possible loss of data Generating Code...

This ....\JavaScriptCore\wtf/text/StringConcatenate.h(73) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/text/StringConcatenate.h(104) : warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/text/StringConcatenate.h(125) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/DateMath.h(208) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(74) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(76) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(78) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\interpreter\RegisterFile.h(130) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data ....\JavaScriptCore\interpreter\CallFrame.h(124) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\runtime\PropertyMapHashTable.h(424) : warning C4267: 'return' : conversion from 'size_t' to 'unsigned int', possible loss of data UString.cpp ....\JavaScriptCore\wtf/text/StringConcatenate.h(73) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/text/StringConcatenate.h(104) : warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/text/StringConcatenate.h(125) : warning C4267: 'initializing' : conversion from 'size_t' to 'unsigned int', possible loss of data ....\JavaScriptCore\wtf/DateMath.h(208) : warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(74) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(76) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\wtf\text\AtomicString.h(78) : warning C4267: 'argument' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\interpreter\RegisterFile.h(130) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\interpreter\CallFrame.h(124) : warning C4267: 'return' : conversion from 'size_t' to 'int', possible loss of data c:\src\src\qt\src\3rdparty\webkit\source\javascriptcore\runtime\PropertyMapHashTable.h(424) : warning C4267: 'return' : conversion from 'size_t' to 'unsigned int', possible loss of data Generating Code...

Warpten commented 10 years ago

These are only warnings; my guess is ignore, taken i never build phantomjs myself.

joevolcano commented 10 years ago

I did find these errors in the output ....\JavaScriptCore\runtime\Error.cpp(151) : error C2065: 'ReturnAddressPtr' : undeclared identifier ....\JavaScriptCore\runtime\Error.cpp(151) : error C2146: syntax error : missing ';' before identifier 'pc' ....\JavaScriptCore\runtime\Error.cpp(151) : error C2065: 'pc' : undeclared identifier ....\JavaScriptCore\runtime\Error.cpp(190) : error C2065: 'pc' : undeclared identifier ....\JavaScriptCore\runtime\Error.cpp(206) : error C2065: 'pc' : undeclared identifier ....\JavaScriptCore\runtime\Error.cpp(206) : error C2039: 'returnPC' : is not a member of 'JSC::ExecState'

joevolcano commented 10 years ago

I understand those are warnings for datatype conversion and can be ignored. I was hoping they might provide a clue as to what is causing the build to fail since that was the last thing it was doing before it failed....

ashkulz commented 10 years ago

Looks like you're hitting #11475 -- if you're building the 1.9 branch you may have to cherry-pick the fix.

joevolcano commented 10 years ago

I was able to fix the build using your suggestion and adjusting the error.cpp file. However when I went to build the nmake in the root I now have a different set of errors

I ran this sequence: cd src\qt preconfig.cmd cd .... src\qt\bin\qmake -r nmake

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\nmake.exe" -f Makefile.phantomjs.Release
cl -c -nologo -Zm200 -Zc:wchar_t- -wd4099 -O2 -MT -GR -W3 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DHAVE_CONFIG_H -DHAVE_FCNTL_H -DHAVE_STDARG_H -DUSE_UTF8 -DSTATIC_BUILD -DQCOMMANDLINE_STATIC -DSTATIC_BUILD -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"qt\include\QtCore" -I"qt\include\QtNetwork" -I"qt\include\QtGui" -I"qt\include\QtWebKit" -I"qt\include" -I"gif" -I"mongoose" -I"linenoise\src" -I"qcommandline" -I"breakpad\src" -I"c:\phantomjs2\src\qt\include\ActiveQt" -I"release" -I"qt\mkspecs\default" -Forelease\ @C:\Users\jv\AppData\Local\Temp\nm898B.tmp

webpage.cpp c:\phantomjs2\src\networkaccessmanager.h(112) : error C2079: 'NetworkAccessManager::m_sslConfiguration' uses undefined class 'QSslConfiguration' networkaccessmanager.cpp c:\phantomjs2\src\networkaccessmanager.h(112) : error C2079: 'NetworkAccessManager::m_sslConfiguration' uses undefined class 'QSslConfiguration' .\networkaccessmanager.cpp(108) : error C2027: use of undefined type 'QSslConfiguration' c:\phantomjs2\src\qt\include\qtnetwork../../src/network/access/qnetworkrequest.h(56) : see declaration of 'QSslConfiguration' .\networkaccessmanager.cpp(108) : error C3861: 'defaultConfiguration': identifier not found .\networkaccessmanager.cpp(121) : error C2653: 'QSslSocket' : is not a class or namespace name .\networkaccessmanager.cpp(121) : error C3861: 'supportsSsl': identifier not found .\networkaccessmanager.cpp(122) : error C2027: use of undefined type 'QSslConfiguration' c:\phantomjs2\src\qt\include\qtnetwork../../src/network/access/qnetworkrequest.h(56) : see declaration of 'QSslConfiguration' .\networkaccessmanager.cpp(122) : error C3861: 'defaultConfiguration': identifier not found .\networkaccessmanager.cpp(125) : error C2228: left of '.setPeerVerifyMode' must have class/struct/union type is 'int' .\networkaccessmanager.cpp(125) : error C2653: 'QSslSocket' : is not a class or namespace name .\networkaccessmanager.cpp(125) : error C2065: 'VerifyNone' : undeclared identifier .\networkaccessmanager.cpp(129) : error C2228: left of '.setProtocol' must have class/struct/union type is 'int' .\networkaccessmanager.cpp(132) : error C2228: left of '.setProtocol' must have class/struct/union type is 'int' .\networkaccessmanager.cpp(134) : error C2228: left of '.setProtocol' must have class/struct/union type is 'int' .\networkaccessmanager.cpp(136) : error C2228: left of '.setProtocol' must have class/struct/union type is 'int' .\networkaccessmanager.cpp(140) : error C2065: 'QSslCertificate' : undeclared identifier .\networkaccessmanager.cpp(140) : error C2653: 'QSslCertificate' : is not a class or namespace name .\networkaccessmanager.cpp(140) : error C3861: 'fromPath': identifier not found .\networkaccessmanager.cpp(141) : error C2514: 'QList' : class has no constructors c:\phantomjs2\src\qt\include\qtcore../../src/corelib/tools/qlist.h(107) : see declaration of 'QList' .\networkaccessmanager.cpp(143) : error C2228: left of '.setCaCertificates' must have class/struct/union type is 'int' .\networkaccessmanager.cpp(196) : error C2653: 'QSslSocket' : is not a class or namespace name .\networkaccessmanager.cpp(196) : error C3861: 'supportsSsl': identifier not found .\networkaccessmanager.cpp(200) : error C2039: 'setSslConfiguration' : is not a member of 'QNetworkRequest' c:\phantomjs2\src\qt\include\qtnetwork../../src/network/access/qnetworkrequest.h(60) : see declaration of 'QNetworkRequest' .\networkaccessmanager.cpp(375) : error C2079: 'e' uses undefined class 'QSslError' .\networkaccessmanager.cpp(375) : error C2440: 'initializing' : cannot convert from 'const QSslError' to 'int' Source or target has incomplete type system.cpp .\system.cpp(173) : error C2653: 'QSslSocket' : is not a class or namespace name .\system.cpp(173) : error C3861: 'supportsSsl': identifier not found

I had removed openssl from preconfig.cmd because I dont need it (per your original response). Is this causing the error? do I put it back and build again? and run the openssl 64 build? or is this unrelated?

ashkulz commented 10 years ago

I don't know if phantomjs can build without SSL support, try building with OpenSSL.

joevolcano commented 10 years ago

I added openssl back and was able to compile. I was able to render with much larger image sizes and output on windows. I even had the ram up to 6.3GB in one test. I still however would like to be able automatically downsample image refs before they are pulled in or at least get an exception to know it will fail or limit the number of concurrent resource requests so as to not flood the memory. Currently with 32bit or 64bit if I try to do anything too large it just terminates or creates empty image output.

Thank you for your help and hopefully 64bit windows will be available on the main site for others to use soon

Regards

ashkulz commented 10 years ago

I don't think a 64-bit build is wanted for the 1.x series; this issue is for the 64-bit build for 2.x and was hijacked by us :-)

joevolcano commented 10 years ago

When will 2.x arrive?

joevolcano commented 10 years ago

Also the 64bit exe I created for PhantomJS seems to be near;y 4x the size of the 32bit exe you can download from the website for 1.9.7. any ideas why it might be so much larger?

6MB vs 24MB

joevolcano commented 10 years ago

Nevermind I found why https://groups.google.com/forum/#!msg/phantomjs/ck4Xw-JDtJo/qiO_cjgOSmAJ

http://upx.sourceforge.net/ upx %PHANTOMJSDEPLOYDIR%\phantomjs.exe

trying it now...

vitallium commented 7 years ago

Next version (2.5) will have a 64-bit version.

jameysiddiqui commented 6 years ago

I m looking or PhantomJs 64 bit version for windows, It seems 64 bit version will be available in 2.5 version of PhantomJs, Please let me know when i can expect the release.