VS2015 and incorrect MSPDB140.DLL version

mloskot's Avatar

mloskot

05 Oct, 2015 09:08 AM

Hi,

This is my first attempt to run a C++ project builds on AppVeyor, so I may be missing something obvious.

I am trying to configure in order to:

  • Build with VS2015 using NMAKE
  • Build for x86 and x64 platforms.
  • Build Debug and Release configurations.

Extract from my appveyor.yml with relevant environment calls:

  • for x86
    • "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat" x86
  • for x64
    • "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /x64 (or /Debug /x64 for Configuration=Debug)
    • "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat" x

Here is build of my project which fails due to incorrect MSPDB140.DLL version https://ci.appveyor.com/project/mloskot/libgeos-sxf4k/build/1.0.25

The x86 builds work well.
The x64 builds fail with mysterious LINK error

LINK : fatal error LNK1101: incorrect MSPDB140.DLL version; recheck installation of this product
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe"' : return code '0x44d'

Is this due to missing configuration in my appveyor.yml?
Or, is this related to this issue https://connect.microsoft.com/VisualStudio/feedback/details/1651822...
By the way, I have tried to apply the workaround from that Microsoft report, but neither VCINSTALLDIR nor VSINSTALLDIR seem to be pre-defined and available at install: step

install:
  - dir "%VCINSTALLDIR%\Bin\mspdbsrv.exe"
  - dir "%VCINSTALLDIR%\Bin\mspdbcore.dll"
  - copy /Y "%VCINSTALLDIR%\Bin\mspdbsrv.exe" "%VCINSTALLDIR%\..\Common7\IDE"
  - copy /Y "%VCINSTALLDIR%\Bin\mspdbcore.dll" "%VCINSTALLDIR%\..\Common7\IDE"

I also tried to switch vcvarsall.bat x86_amd64 toolset to amd64, but then x64 builds prematurely yet mysteriously terminate without running NMAKE step: https://ci.appveyor.com/project/mloskot/libgeos-sxf4k/build/job/jdb...

I will appreciate any help in solving my problem.

  1. Support Staff 1 Posted by Feodor Fitsner on 05 Oct, 2015 04:59 PM

    Feodor Fitsner's Avatar
  2. 2 Posted by mloskot on 06 Oct, 2015 09:37 AM

    mloskot's Avatar

    @Feodor Thanks for your response.

    Yes, I had web-searched before posting here and I found the SO/Boost links.
    I looked at it all again and I can't really see actual solution for AppVeyor-specific environment. Unless, I apply one of these:

    1. Modify flags in makefiles to not to generate debug information (from the SO question)
    2. Switch to VS2012/2013 for x64 debug builds (from the libtorrent disccussion at GH). I don't use Boost.Build, so can't see how switching to x64 build of b2.exe would work for me.
    3. Modify PATH to manually force use of the native amd64 toolset instead of x86_amd64 cross (from the Boost ml). This one puzzles me, because the native x64 toolset should be preselected via "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat" amd64.

    I can make x64 builds of my project with VS2015 on Windows 7 and Windows 10 without any issues, using native amd64 as well as x86_amd64.

  3. Support Staff 3 Posted by Feodor Fitsner on 06 Oct, 2015 04:27 PM

    Feodor Fitsner's Avatar

    Have you tried looking via RDP what's going on (if that helps): http://www.appveyor.com/docs/how-to/rdp-to-build-worker?

  4. 4 Posted by mloskot on 26 Feb, 2016 01:39 PM

    mloskot's Avatar

    @Fedor I have re-tried to switch to VS2015 and it simply works.

    So, I'm closing this discussing as solved.

    Thanks!

  5. mloskot closed this discussion on 26 Feb, 2016 01:39 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

Recent Discussions

10 Aug, 2024 02:42 PM
09 Aug, 2024 10:48 PM
06 Aug, 2024 08:03 PM
01 Aug, 2024 04:26 PM
30 Jul, 2024 06:33 PM