[cmake-developers] [CMake 0016007]: Visual Studio 2015 + v110_xp toolset + MFC: rerun cmake 3.5.0-rc3 inside Visual Studio breaks compilation

Mantis Bug Tracker mantis at public.kitware.com
Fri Mar 4 05:47:34 EST 2016


The following issue has been SUBMITTED. 
====================================================================== 
https://public.kitware.com/Bug/view.php?id=16007 
====================================================================== 
Reported By:                Anatoly Shirokov
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   16007
Category:                   CCMake
Reproducibility:            always
Severity:                   block
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2016-03-04 13:47 MSK
Last Modified:              2016-03-04 13:47 MSK
====================================================================== 
Summary:                    Visual Studio 2015 + v110_xp toolset + MFC: rerun
cmake 3.5.0-rc3 inside Visual Studio breaks compilation
Description: 
When I change CMakeLists.txt inside Visual Studio 2015 and try to rebuild my
solution, I get complication errors:
Error C2039: 'SetDefaultDllDirectories' : is not a member of '`global
namespace'' c:\program files (x86)\microsoft visual studio
14.0\vc\atlmfc\include\atlcore.h 638 1 
Error C2065: 'SetDefaultDllDirectories' : undeclared identifier c:\program files
(x86)\microsoft visual studio 14.0\vc\atlmfc\include\atlcore.h 638 1 
Error C2065: 'LOAD_LIBRARY_SEARCH_SYSTEM32' : undeclared identifier c:\program
files (x86)\microsoft visual studio 14.0\vc\atlmfc\include\atlcore.h 640 1

Steps to Reproduce: 
1. generate mfc project 

>call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"\vcvarsall.bat x86

>set PATH=%VCINSTALLDIR%\bin;C:\Program Files (x86)\CMake 3.5\bin;%PATH%;

>cmake --version
cmake version 3.5.0-rc3

>cmake -G "Visual Studio 14 2015" -T v110_xp ..\src

2. open the solution in Visual Studio 2015

3. build the solution without any errors

4. change CMakeLists.txt

5. rebuild the solutions and get errors:
Error C2039: 'SetDefaultDllDirectories' : is not a member of '`global
namespace'' c:\program files (x86)\microsoft visual studio
14.0\vc\atlmfc\include\atlcore.h 638 1 
Error C2065: 'SetDefaultDllDirectories' : undeclared identifier c:\program files
(x86)\microsoft visual studio 14.0\vc\atlmfc\include\atlcore.h 638 1 
Error C2065: 'LOAD_LIBRARY_SEARCH_SYSTEM32' : undeclared identifier c:\program
files (x86)\microsoft visual studio 14.0\vc\atlmfc\include\atlcore.h 640 1


Additional Information: 
I have found the feedback related to this problem:
https://connect.microsoft.com/VisualStudio/feedback/details/773422/compiler-error-when-using-v110-xp-platform-toolset-visual-studio-2012

There is a workaround posted by Wouter_Demuynck on 17.12.2012 at 4:07:
I noticed that selecting the v110_xp toolset in the process properties did not
automatically enable the _USING_V110_SDK71_ preprocessor flag.

After manually adding the following define at the top of my stdafx.h, the
project compiled fine:

#define _USING_V110_SDK71_

I have added #define _USING_V110_SDK71_ to my CMakeFiles.txt, and it solved the
problem, but may be there is more elegance solution? 
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2016-03-04 13:47 Anatoly ShirokovNew Issue                                    
======================================================================



More information about the cmake-developers mailing list