'CheckForDuplicateEntries': is not a member of 'Microsoft::WRL::Details'

Matty's Avatar

Matty

28 Jan, 2020 03:51 PM

Hi, as of December 9th 2019, my builds were working fine. But, nearly 2 months later I launched the next build and it failed. To check this wasn't to do with any code I just commited, I re-launched the working build from December and it failed. The builds only fail in Release mode because of the CheckForDuplicateEntries function definition is wrapped with debug ifdefs. No builds fail on my own machine.

The error comes from the DirectXTK library but it doesn't tell me which line in the library. For some reason it mentions the stl chrono library but I fail to see how chrono is even remotely related to WRL.

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\winrt\wrl\module.h(1427,18): error C2039: 'CheckForDuplicateEntries': is not a member of 'Microsoft::WRL::Details' [C:\projects\nbody-simulator\Build\lib\DirectXTK\xwbtool.vcxproj]
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\winrt\wrl\module.h(1393): message : see declaration of 'Microsoft::WRL::Details' [C:\projects\nbody-simulator\Build\lib\DirectXTK\xwbtool.vcxproj]
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\winrt\wrl\module.h(1540): message : see reference to class template instantiation 'Microsoft::WRL::Module<Microsoft::WRL::InProc,ModuleT>' being compiled [C:\projects\nbody-simulator\Build\lib\DirectXTK\xwbtool.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\chrono(632): message : see reference to class template instantiation 'std::chrono::duration<double,std::ratio<1,1>>' being compiled [C:\projects\nbody-simulator\Build\lib\DirectXTK\xwbtool.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\chrono(178): message : see reference to class template instantiation 'std::chrono::duration<__int64,std::nano>' being compiled [C:\projects\nbody-simulator\Build\lib\DirectXTK\xwbtool.vcxproj]
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\chrono(610): message : see reference to class template instantiation 'std::chrono::time_point<std::chrono::steady_clock,std::chrono::nanoseconds>' being compiled [C:\projects\nbody-simulator\Build\lib\DirectXTK\xwbtool.vcxproj]
Since the error is only on AppVeyor for me, I thought I'd ask here first, but it could be caused by the DirectXTK submodule updating, but as I said I can't replicate this on my own machine.
  1. Support Staff 1 Posted by Feodor Fitsner on 29 Jan, 2020 03:54 AM

    Feodor Fitsner's Avatar

    Hi Matty,

    On December 9 there was an update of Visual Studio 2019 and during that process its version was bumped from 16.3.x to released 16.4: https://www.appveyor.com/updates/2019/12/09/

    It's hard for me to say what exactly is wrong with your build. I can recommend trying to login to VM via RDP and see what's going on there, maybe try building from IDE: https://www.appveyor.com/docs/how-to/rdp-to-build-worker/

  2. 2 Posted by Matty on 29 Jan, 2020 01:50 PM

    Matty's Avatar

    Hi Feodor, thanks for your response. I upgraded my local VS to 16.4 and it still builds fine. I will RDP in and see what's going on :)

  3. 3 Posted by Matty on 29 Jan, 2020 04:50 PM

    Matty's Avatar

    So after RDP'ing in I managed to get a successful build using CMake and Ninja Makefiles like I do locally. The build still fails when using Visual Studio's makefiles, the difference is that VS Makefiles uses windows kit 10.0.17763.0 whilst ninja uses the latest 10.0.18362.0.

    Edit: -DCMAKE_SYSTEM_VERSION=10.0.18362.0 on the cmake generate line fixed it!

  4. Matty closed this discussion on 29 Jan, 2020 05:05 PM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac