It's Dinkumare's/Microsoft's sloppy library code that's the problem -- you
can ignore the warnings. We keep them at that level so we can detect any
problems from the Xalan code. In the last beta of VC++ 7, Dinkumware seems
to have cleaned up their act, and there are no warnings from the library
code.
Some people have placed compiler pragmas in their VC header files to turn
off these warnings. See the documentation for information on controlling
warnings with pragmas, and how to push and pop the current state.
The problem you mentioned with the Xerces library path has already been
fixed in the latest CVS code. You can change your local copy, or get the
latest from CVS.
Dave
"Cyberthymia"
<cyberthymia@ya To: <[EMAIL PROTECTED]>
hoo.co.uk> cc: (bcc: David N Bertoni/CAM/Lotus)
Subject: Compiler warnings
11/20/2001
10:24 AM
Please respond
to xalan-dev
Hi
I'm trying to compile the SimpleXPathAPI sample project that came with
Xalan-C 1.2 (the latest version I could find on xml.apache.org)
in Visual C++ 6 Pro, SP5, with the mods listed on the Dinkumware web pages.
First time I build it (straight out of the zip file, only change to make
the files write-enabled), it reports 2659 warnings, all of the form:
...\INCLUDE\xmemory(39) : warning C4100: '_P' : unreferenced formal
parameter
...\INCLUDE\vector(249) : warning C4663: C++ language change: to explicitly
specialize class template 'vector' use the following syntax:
template<> class vector<bool,class std::allocator<unsigned int> >
...
...\INCLUDE\vector(156) : warning C4018: '<' : signed/unsigned mismatch
...\INCLUDE\xlocnum(179) : warning C4146: unary minus operator applied to
unsigned type, result still unsigned
...\INCLUDE\vector(156) : while compiling class-template member function
'void __thiscall std::vector<class ArenaBlock<class XalanDOMString> *,class
std::allocator<class ArenaBlock<class XalanDOMString> *> >::insert(class
ArenaBlock<class XalanDOMString> ** ,unsigned int,class ArenaBlock<class
XalanDOMString> *const & )'
If I reduce the warning level in the project settings to Level 1, this
reduces the warnings down to 34 including
C:\xalan\xml-xalan\c\src\XPath\XNodeSetBase.cpp(87) : warning C4355: 'this'
: used in base member initializer list
...\INCLUDE\xlocale(277) : warning C4100: '_State' : unreferenced formal
parameter
...\INCLUDE\streambuf(182) : while compiling class-template member function
'void __thiscall std::basic_streambuf<char,struct std::char_traits<char>
>::imbue(const class std::locale &)'
...\INCLUDE\xmemory(68) : see reference to function template instantiation
'void __cdecl std::_Destroy(const class XalanDOMString ** )' being compiled
Are all these warnings safe to ignore, and why are most of them reported
against the C++ libraries (and how do I stop all of them from being
reported)?
Is this something strange that Xalan is doing, or is my VC++ Install
corrupt?
I don't get these warnings compiling Xerces, yet they appear against all of
the Xalan samples.
I've tried looking through the FAQ, and through the archive of this list
but couldn't find anything useful.
The sample programs appear to run correctly, as far as I can tell, but I
just want to confirm everything is OK before I start trying to use Xalan
for anything important.
Thanks for your help,
Richard Jinks
P.S.
As an aside, there does appear to be a small error in the Xalan samples
project file in that it tries to link in the Xerces library from the wrong
directory -
it wants to find it in "..\..\..\..\..\..
\xml-xerces\c\Build\Win32\VC6\Debug\", but in the zip file I got from
xml.apache.org, the path should be "..\..\..\..
\xml-xerces\c\Build\Win32\VC6\Debug\" (i.e. two less ..\)