简体   繁体   中英

Unable to build - Migrating VC++ code from VS2010 to VS2013

I am trying to migrate my source from VS2010 to VS2013. It is giving me sleepless nights. I'm getting the below attached compilation error. Please help me out in identifying which compilation switch I'm missing out. I have saved my .sln file from VS2013 to get it adapted to the new environment.

My current compilation settings are as follows: PlatformToolset: Visual Studio 2013 - Windows XP (v120_xp) Command Line: /Yu"stdafx.h" /FR"DebugU\\" /GS /TP /analyze- /W3 /Zc:wchar_t /I"..\\Common" /Zi /Gm- /Od /Fd".\\DebugU/" /fp:precise /D "_PUGIXML" /D "_DEBUG" /D "_USRDLL" /D "_CRT_SECURE_NO_WARNINGS" /D "_BIND_TO_CURRENT_VCLIBS_VERSION" /D "_VC80_UPGRADE=0x0700" /D "_USING_V110_SDK71_" /D "_WINDLL" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX /Zc:forScope /RTC1 /Gd /Oy- /showIncludes /MTd /Fa".\\DebugU/" /EHsc /nologo /Fo".\\DebugU/" /Fp".\\DebugU/xxxxxxxx.pch"

Compilation Log with "ShowIncludes" 1> pugixml.cpp 1> Note: including file: d:\\vistasonicpoc\\common\\pugixml.hpp 1> Note: including file: d:\\vistasonicpoc\\common\\pugiconfig.hpp 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\exception 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\cstddef 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\yvals.h 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xkeycheck.h 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\crtdefs.h 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\use_ansi.h 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\initializer_list 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common(421): error C2159: more than one storage class specified 1> C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common(421) : see reference to class template instantiation 'std::_Has_result_type<_Ty>' being compiled 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common(421): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common(421): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(203): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(203): warning C4042: 'std::plus<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(203): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(218): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(218): warning C4042: 'std::minus<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(218): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(233): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(233): warning C4042: 'std::multiplies<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(233): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(248): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(248): warning C4042: 'std::equal_to<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(248): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(263): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(263): warning C4042: 'std::less<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(263): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1> pugixml.cpp 1> Note: including file: d:\\vistasonicpoc\\common\\pugixml.hpp 1> Note: including file: d:\\vistasonicpoc\\common\\pugiconfig.hpp 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\exception 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\cstddef 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\yvals.h 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xkeycheck.h 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\crtdefs.h 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\use_ansi.h 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\initializer_list 1> Note: including file: C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common(421): error C2159: more than one storage class specified 1> C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common(421) : see reference to class template instantiation 'std::_Has_result_type<_Ty>' being compiled 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common(421): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xtr1common(421): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(203): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(203): warning C4042: 'std::plus<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(203): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(218): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(218): warning C4042: 'std::minus<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(218): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(233): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(233): warning C4042: 'std::multiplies<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(233): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(248): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(248): warning C4042: 'std::equal_to<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(248): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(263): error C3557: a function cannot have both a return type and a late-specified return type 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(263): warning C4042: 'std::less<void>::operator ()' : has bad storage class 1>C:\\Program Files (x86)\\Microsoft Visual Studio 12.0\\VC\\include\\xstddef(263): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

I had the same problem and found out that the flag /Zc:auto was set to /Zc:auto- and this was causing all the errors.

You don't seem to have it specified in the command line but it could help someone else having the same type of error.

Zc:auto

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM