You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "DK (JIRA)" <xe...@xml.apache.org> on 2012/06/08 15:06:23 UTC

[jira] [Commented] (XERCESC-1989) Xerces 3.1.1 Xerces.Lib fails to build with new Visual Studio 2012 RC

    [ https://issues.apache.org/jira/browse/XERCESC-1989?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13291759#comment-13291759 ] 

DK commented on XERCESC-1989:
-----------------------------

Just to give the extra info I put in the MS Connect Feedback ticket to which the above is their response:

I have a project uses the Xerces XML Parser that I have tried to build using a new fresh Install of Visual Studio Premium 2012 RC in a Windows 7 Professional 64-bit virtaul machine with no other packages installed. VC10 is installed in another VM.

When building the Debug and Release libraries, under VC10, these builds OK even though there are 2 final warnings:

1> Generating Code...
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(54): warning RC4011: identifier truncated to '_CRT_SECURE_CPP_OVERLOAD_STANDA'
1> 
1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(76): warning RC4011: identifier truncated to '_CRT_SECURE_CPP_OVERLOAD_SECURE'
1> 
1>Link:
1>     Creating library .\..\..\..\..\..\Build\Win32\VC10\Debug\xerces-c_3D.lib and object .\..\..\..\..\..\Build\Win32\VC10\Debug\xerces-c_3D.exp
1>Manifest:
1> Deleting file ".\..\..\..\..\..\Build\Win32\VC10\Debug\obj\XercesLib\xerces-c_3_1D.dll.embed.manifest".
1>LinkEmbedManifest:
1> XercesLib.vcxproj -> P:\VC\wxWidgets\xerces-c-3.1.1\projects\Win32\VC10\xerces-all\XercesLib\.\..\..\..\..\..\Build\Win32\VC10\Debug\xerces-c_3_1D.dll
1>FinalizeBuildStatus:
1> Deleting file ".\..\..\..\..\..\Build\Win32\VC10\Debug\obj\XercesLib\XercesLib.unsuccessfulbuild".
1> Touching ".\..\..\..\..\..\Build\Win32\VC10\Debug\obj\XercesLib\XercesLib.lastbuildstate".
1>
1>Build succeeded

However, under VC11, the same 2 warnings cause an error which prevents the build successding.

ClCompile:
All outputs are up-to-date.
C:\Program Files (x86)\Windows Kits\8.0\Include\um\winnt.h(141): error RC2188: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\string.h(57) : warning RC4011: identifier truncated to '_CRT_SECURE_CPP_OVERLOAD_STANDA'

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\string.h(79): warning RC4011: identifier truncated to '_CRT_SECURE_CPP_OVERLOAD_SECURE'

C:\Users\David\Documents\Visual Studio 11\Projects\xerces-c-3.1.1\Build\Win32\VC11\Debug\obj\XercesLib\RCa01756(889): fatal error RC1116: RC terminating after preprocessor errors

Build FAILED.

                
> Xerces 3.1.1 Xerces.Lib fails to build with new Visual Studio 2012 RC
> ---------------------------------------------------------------------
>
>                 Key: XERCESC-1989
>                 URL: https://issues.apache.org/jira/browse/XERCESC-1989
>             Project: Xerces-C++
>          Issue Type: Bug
>          Components: Build
>    Affects Versions: 3.1.1
>         Environment: Windows 7, new Visual Studio 2012 RC. Building x86 XercesLib.
>            Reporter: DK
>            Priority: Minor
>   Original Estimate: 5m
>  Remaining Estimate: 5m
>
> Error during resource compile. I raised it as an issue with MS Connect and the response states that it is due to a change in "winnt.h" where previous warning messages are now error messages.
> Text from MS reply is:
> The reason this is a build error now, instead of a build warning, is due to a change in winnt.h.  If you look at line 141, you'll reach the #error statement on this line because none of the architecture constants are defined.
> There are a couple of ways to work around this build error, in order of preference:
> 1.  Remove the #include <winnt.h> statement from your .rc files if it's not needed.
> 2.  Replace the #include <winnt.h> statement with #include <windows.h> or #include <winnt.rh>
> 3.  If you really need to keep the #include <winnt.h> statement in place, you can define one of the architecture constants before the #include line, for example:
> #define _X86_
> #include <winnt.h>
> I have tested '2' by changing 'winnt.h' to 'winnt.rh' on lines 11 & 87 in xerces-c-3.1.1\src\xercesc\util\MsgLoaders\Win32\Version.rc and it now compiles and links without error.
> Obviously, your choice of option suggested by MS that you wish to employ.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org