mapbox / windows-builds

DEPRECATED! build scripts for mapnik dependencies, mapnik, node-mapnik, node, libosmiom, osmium-tool
38 stars 22 forks source link

Changes for VS2015 CTP6 #28

Closed wilhelmberg closed 9 years ago

wilhelmberg commented 9 years ago

CTP 6 seem to contain some bigger changes. Opening a comment for each problem in this thread.

wilhelmberg commented 9 years ago

Boost

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\crtdefs.h(10):
fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory

CTP6 seems to have changed paths for the WinSDK from 8.1 to 10.

Previously: ...\Windows Kits\8.1

Now: image

EDIT 1 got past the corecrt.herror by copying all include files from C:\Program Files (x86)\Windows Kits\10\Include\ucrt to C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include

New error: LINK : fatal error LNK1104: cannot open file 'ucrt.lib'

wilhelmberg commented 9 years ago

Operating System itself

It seems that CTP6 changes the operating system in undocumented ways that make it impossible to run Mapbox Studio. As of today (Sat, Feb 28) no mentions about anything interesting for us, either under Known issues or Breaking changes: http://support.microsoft.com/kb/2967191

I've verified with Windows 8.1 and Windows Server 2012 R2

Windows 8.1

My main local dev machine is seriously screwed now.


UPDATE 1 2015 March 4th

Machine is still screwed, with 2015 CTP5 installed. Meaning that

However, the following process made at least Mapbox Studio work again:

UPDATE 1


After the upgrade from CTP5 to CTP6 I wasn't able to compile boost (see above). Mapbox studio failed with Unable to create pipe "\\.\pipe\chrome: https://github.com/mapbox/mapbox-studio/issues/1190 https://github.com/mapbox/mapbox-studio-internal/issues/200

image

image

Windows Server 2012 R2

unsuccessful attempts to get CTP 5 running again

env vars

SET VCHOME=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
SET VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
SET VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 14.0\

re-run setup

check registry and verify vcpkg.dll exists

  <entry>
    <record>545</record>
    <time>2015/02/28 09:03:23.211</time>
    <type>Error</type>
    <source>VisualStudio</source>
    <description>No InprocServer32 registered for package [Visual C++ Package]</description>
    <guid>{1B027A40-8F43-11D0-8D11-00A0C91BC942}</guid>
    <hr>8007007f</hr>
    <errorinfo></errorinfo>
    <path>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcpackages\vcpkg.dll</path>
  </entry>
wilhelmberg commented 9 years ago

Unistalling CTP6 and additionally removing everything manually, that was installed by CTP6, but not removed by the uninstaller, doesn't solve anything.

After a reinstall of CTP5:

wilhelmberg commented 9 years ago

Update on my quest "Restore W8.1 after VS2015 CTP6"

springmeyer commented 9 years ago

wow. I had no idea the potential problems from CTP. does Microsoft have any kind of bug tracker where this can be reported?

wilhelmberg commented 9 years ago

y, they do, but answers to CTP questions/bug reports are most of the time like this: Thanks for reporting. It is already on our list. As you know: this is CTP, don't use in production.

I wanted to avoid reinstalling ,Windows, but I've already spent way too much time with this. I think, first thing on Monday is a new setup of the MacBook.

And as mentioned above: boost doesn't even compile on a fresh machine with just CTP6 installed.

I suggest we stay with 2014 CTP 4 for now.

wilhelmberg commented 9 years ago

Ok, I'm up and running again with a fresh install of W8.1, VS2014 CTP4 and everything else.

Closing this issuse. We will stay with VS2014 CTP4 for now, till a more reliable VS2015 CTP7 or RTM comes out.

I couldn't get boost to compile with 2015 CTP6 on a fresh machine with just VS on it, anyway.

@springmeyer @flippmoke I know a lot of things a moving at the moment (coverage), but just wanted to let you know, I get this error with latest master:

image

cdglove commented 9 years ago

This may help you. I ran into the same issue on another project, and the culprit turned out to be that some boost build generated bat files were not being regenerated with the updated CRT include paths. They will reside in your temp directory and have names like b2_msvc_14.0_vcvarsall_amd64.cmd. Manually removing the files corrected the problem for me. I can now build boost on CTP6.

wilhelmberg commented 9 years ago

@cdglove Great info, but I couldn't find the referenced file b2_msvc_14.0_vcvarsall_amd64.cmd or anything similar on my system.

However, I removed all already extracted sources and all other tmp files I could find, started completely from scratch and now the build magically started working, including everything up to mapnik. I've not yet tried node-mapnik.

Thanks for sharing and making me look into it again.

Out of curiosity: Did you have any other problems when updating VS? As you might have read updating to CTP6 totally destroyed my dev machine. My route was CTP2, CTP4, CTP5, CTP6 (and the 2015 Preview somewhere in between).

/cc @springmeyer

jpvanoosten commented 9 years ago

@cdglove Good call! This fixed it for me too. I built the boots libraries initially with CTP5 and tried to rebuild with CTP6 and got the same error. Deleting those .cmd files in the Temp folder fixed it for me.

sergey-shandar commented 9 years ago

@cdglove Excellent call to clean up temp folder! Thank you.

wilhelmberg commented 9 years ago

This just happened again, after upgrading to the release version of Visual Studio 2015.

Same procedure as mentioned above by @cdglove

zvanjak commented 7 years ago

Saved my day! Thanks.