0

When researching on libmdbx, I found its sources require MSVC compiler version >= 19.0.24234 for "Visual Studio 2015 Update 3".

I have to stick to Visual Studio 2015 Update 3, cannot upgrade to Visual Studio 2017 or later. But my compiler version is 19.00.24223.

It seems that if you install the Visual Studio 2015 Update 3 freshly from an offline ISO, the initial compiler version would be 19.00.24215.1. (ref: Offline install ISO)

Then if you install this update (KB4020481), the compiler version is bumped to 19.00.24223

I installed this update (KB3165756), the compiler version did not change.

There is a page listing all _MSC_VER_FULL values: https://dev.to/yumetodo/list-of-mscver-and-mscfullver-8nd

The version number for 2015 Update 3 is 190024210.

So is 190024234 really a valid compiler version from Visual Studio 2015 Update 3? Or is it actually from Visual Studio 2017?

If you search google with "_MSC_FULL_VER 190024234", you will get very few results, with top ones being the github sources from user erthink, where happnes to be the repo of libmdbx. In the source it claims that 19.00.24234 corresponds to Visual Studio 2015. So is there any "KB" update that can bump the compiler versio to that required one? Thanks.

#   if _MSC_FULL_VER < 190024234
        /* Actually libmdbx was not tested with compilers older than 19.00.24234 (Visual Studio 2015 Update 3).
         * But you could remove this #error and try to continue at your own risk.
         * In such case please don't rise up an issues related ONLY to old compilers.
         */
#       error "At least \"Microsoft C/C++ Compiler\" version 19.00.24234 (Visual Studio 2015 Update 3) is required."
#   endif
sepp2k
  • 363,768
  • 54
  • 674
  • 675
zerox
  • 307
  • 3
  • 11
  • Possibly relevant: https://visualstudio.microsoft.com/vs/support/vs2015/this-update-requires-visual-studio-2015-update-3-to-be-installed/ – Adrian Mole Apr 19 '21 at 09:21
  • Your link's solution is to install `KB3165756`, as I have mentioned in the question, installing that KB does not change the compiler version. – zerox Apr 19 '21 at 09:24
  • 1
    _"So is 190024234 really a valid compiler version from Visual Studio 2015 Update 3?"_ It seems that at least one person was using this compiler version https://stackoverflow.com/questions/60718832/inconsistent-truncation-of-unsigned-bitfield-integer-expressions-between-c-and but it's not clear if it's Visual Studio 2015 or a newer version. [This site](https://dev.to/yumetodo/list-of-mscver-and-mscfullver-8nd) lists version 1900 as Visual Studio 2015 Update 3. The next newer Visual Studio 2017 has version 1910 –  Apr 19 '21 at 09:32
  • is there a reason you can't upgrade to VS2017+? Because since VS2015 MS changed to [Universal CRT](https://learn.microsoft.com/en-us/cpp/windows/universal-crt-deployment?view=msvc-160) which has a stable ABI and is compatible with later MSVC versions so you can build with the latest MSVC version and it'll just work, no need to stick and build with a specific version – phuclv Apr 19 '21 at 09:32
  • @jabaa So it seems that `19.00.24234` should be a VS2015 compiler version. VS2017 should have minor version set to 01. That's why I'm curious what update should I apply to VS2015 to get `19.00.24234`. @phuclv Unfortunately the reason is not technical. – zerox Apr 19 '21 at 09:35
  • @jabaa Thanks for the hint, searching `19.00.24234.1` leads me to this page: https://social.msdn.microsoft.com/Forums/azure/en-US/5a1a6d14-4076-4bcb-a8c6-d83c98c7f83e/c-standards-in-microsoft-visual-c-compilers?forum=vcgeneral So this compiler version is the VS2015 toolset bundled in VS2017, probably it's not available in VS2015 Update 3. The author of `libmdbx` probably also uses the VS2015 toolset from VS2017, hence he sees the compiler version as `19.00.24234`. – zerox Apr 19 '21 at 09:44

0 Answers0