I’m working with the iMX6 board and windows CE 2013. While developing I encountered some unsupported C++11 functionality. After digging a bit deeper I found out that the compiler used is actually “C/C++ Optimizing Compiler Version 17.00.50728.6 for ARM”. It seems that it actually does support only VS2012 features (see Support For C++11-14-17 Features (Modern C++) | Microsoft Docs) despite it’s “support” for VS2015. Is this accurate? Is there maybe a new major release of the compiler one could move to?
The compiler is part of the SDK. As we created our SDKs using VS2013, the compiler included is the
Microsoft (R) C/C++ Optimizing Compiler Version 17.00.50728.6 for ARM
I checked VS2015, it contains the
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.24215.1 for ARM
You can try to replace the compiler.
You typically find the VS2015 compiler here:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_arm\cl.exe
You also need the
mspdb140.dllwhich is located one folder level up from the one above.
When you build your project, the compiler is taken from the SDK, which you typically installed here:
C:\Program Files (x86)\Windows CE Tools\SDKs\Toradex_CE800\Sdk\Bin\i386\Arm\cl.exe
(So this is the one you want to have replaced).
I built the SDK using VS2015 and compiler in generated SDK is still 17.00.50728.6, so the VS version doesn’t matter. When building SDK, the compiler probably comes from WINCE800\public\COMMON\sdk\bin\i386\arm, not from VS.
Does anybody replaced the 17.00.50728.6 compiler with the newer 19.xx? Does it work correctly?
What happened when you tried the approach described in my answer above?
I didn’t try this. There seems to be a risk that even if the compilation succeeds, there may be other problems. I asked the question, because I would like to first find out if someone tried this and with what result.