[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