[CMake] Fwd: Re: VC2015 and Windows 7 compatibility

Gonzalo Garramuño ggarra13 at gmail.com
Thu Sep 21 17:40:25 EDT 2017



El 21/09/2017 a las 11:08, Luis Caro Campos escribió:
> Hi Gonzalo,
>
> Since you are using ninja files and building from command line, I 
> suspect you are using a Visual Studio 2015 command prompt.
>
> It may be beneficial to initialise a command prompt to specifically 
> target Windows 8.1 SDK which is the one to go to target Windows 7.
>
> First, make sure Windows 8.1 SDK is installed (can't remember but it 
> is likely that the visual studio 2015 installer can help).
>
> Then open a command prompt and run the vcvarsall.bat passing arguments 
> "x64 8.1" if you are building on a 64-bit install of windows targeting 
> 64-bit windows.
>
> Then run cmake and ninja from there, and I suspect there's a chance 
> the produced binaries will no longer depend on those files. Like you 
> mentioned, those files are not redistributable by developers.
>
> My vcvarsall.bat is located at:
> C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
>
> Regards,
> Luis
Thank you Luis for your help.  I found out why the application was 
failing in Windows7 32-bits.  The problems was a zlib file that was 
compiled with the MSVC2015 compiler while the rest was compiled with 
MSVC2013.  That was triggering the api-ms-core-runtime-l1-2-0.dll 
error.   Talk about a helpful message.

Yet, I am puzzled still with the Windows 7 64 bits version of my 
program.  Disting many of the api-ms-core* and api-ms-crt* makes my 
program work.  Here, as far as I can tell, it was compiled with the 
MSVC2015 with the -D_WIN32_WINNT=0x0501 to target the least OS. However 
some of the dependant libraries surely not have that -D define.
It would be helpful if I knew what files are part of the universal c 
runtime.  Currently I think: concrt140.dll, ucrtbase.dll, msvcp140.dll, 
vccorlib140.dll, vcomp140.dll, vcruntime140.dll.  I exclude all the MFC 
dlls as I am not using them.

-- 
Gonzalo Garramuño



More information about the CMake mailing list