All - I've been looking into porting Xerces-P to Win2k.  I've got a few
problems, hoping you might be able to point me in the right direction.

I'm using ActiveState 5.6.1 (build 626) and Visual C++ under Win2k.  I'm
having problems resolving errors related to threads.

Here's the output of nmake:

##################################
C:\Xerces\Xerces-P\XML-Xerces-1.5.7>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        NMAKE -C Handler static
        cl -c -I. -IHandler
-IC:\Xerces\Xerces-C\xerces-c_2001-10-05-win32\inclu
de -D_REENTRANT -O1 -MD -DNDEBUG    -DVERSION=\"1.5.7\"
-DXS_VERSION=\"1.5.7\"
 -IC:\Perl\lib\CORE  Xerces.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

Xerces.c
C:\Perl\lib\CORE\perl.h(788) : warning C4273: 'win32_strerror' :
inconsistent dl
l linkage.  dllexport assumed.
C:\Perl\lib\CORE\dosish.h(111) : warning C4005: 'Stat' : macro redefinition
        C:\Perl\lib\CORE\win32.h(305) : see previous definition of 'Stat'
C:\Perl\lib\CORE\perl.h(1746) : error C2061: syntax error : identifier
'perl_os_
thread'
C:\Perl\lib\CORE\perl.h(1746) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\perl.h(1747) : error C2061: syntax error : identifier
'perl_mut
ex'
C:\Perl\lib\CORE\perl.h(1747) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\perl.h(1748) : error C2061: syntax error : identifier
'perl_con
d'
C:\Perl\lib\CORE\perl.h(1748) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\perl.h(1749) : error C2061: syntax error : identifier
'perl_key
'
C:\Perl\lib\CORE\perl.h(1749) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\perl.h(2194) : warning C4273: 'mktemp' : inconsistent dll
linka
ge.  dllexport assumed.
C:\Perl\lib\CORE\perl.h(2196) : warning C4273: 'atof' : inconsistent dll
linkage
.  dllexport assumed.
C:\Program Files\Microsoft Visual Studio\VC98\include\math.h(174) : warning
C427
3: 'atof' : inconsistent dll linkage.  dllexport assumed.
C:\Perl\lib\CORE\perl.h(2237) : warning C4273: 'win32_crypt' : inconsistent
dll
linkage.  dllexport assumed.
C:\Perl\lib\CORE\perl.h(2347) : warning C4273: 'win32_environ' :
inconsistent dl
l linkage.  dllexport assumed.
C:\Perl\lib\CORE\perlvars.h(22) : error C2061: syntax error : identifier
'PL_thr
_key'
C:\Perl\lib\CORE\perlvars.h(22) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\perlvars.h(39) : error C2061: syntax error : identifier
'PL_op_
mutex'
C:\Perl\lib\CORE\perlvars.h(39) : error C2059: syntax error : ';'
C:\Perl\lib\CORE\perlvars.h(22) : error C2143: syntax error : missing '{'
before
 '*'
C:\Perl\lib\CORE\perlvars.h(39) : error C2143: syntax error : missing '{'
before
 '*'
Xerces.c(482) : fatal error C1083: Cannot open include file: 'strstream.h':
No s
uch file or directory
NMAKE :  U1077: 'cl' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual
Studio\VC98\bin\N
MAKE.EXE"' : return code '0x2'
Stop.
##################################

Problem is that pthread_t (and other thread-related defines referenced in
c:\Perl\lib\CORE\perl.h) isn't defined anywhere in Visual C++.

Questions -
1. Are the nightly binaries of Xerces-C built with multithreaded support?
2. I'm assuming that I should only need the Visual C++ include files, right?
That is, I shouldn't need to be including the Cygwin includes, correct?

Any suggestions?

Thanks,
Mark

--
Mark Riehl
Agile Communications, Inc.
Email: [EMAIL PROTECTED]

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, October 18, 2001 4:01 PM
> To: Mark Riehl
> Cc: [EMAIL PROTECTED]
> Subject: Re: Xerces-P and Win2k
> 
> 
> "Mark Riehl" <[EMAIL PROTECTED]> writes:
> 
> > Jason - I've been looking at this on and off for a few weeks.  We've
> > got a project (under Win2k) that requires an XML parser in C++ and
> > Perl.  We're using Xerces-C, so I'd like to use Xerces-P so that we
> > have consistent XML parser APIs.
> 
> Right, that makes sense. The API's will be *nearly* identical. The
> only difference is that I've simplified some things to work using
> Perls builtin data types: strings, arrays, and hashes.
> 
> > In a nutshell, I think I need to do the following:
> > 
> > 1. Install one of the latest nightly builds of Xerces-C
> > 2. Modify Makefile.PL so that I can compile Xerces-P using 
> MS Visual C++ 6
> > off the command line.
> 
> One issue is how perl was built. Presumably you're using ActiveState
> Perl, which I believe gets compiled using VC++. 
> 
> In order for Perl to build it's modules, it keeps track of all the
> configuration information that was generated when Perl was built. All
> this info is stored in the Perl module, Config.pm.
> 
> When you configure a new module, like XML::Xerces, you need to have a
> script, Makefile.PL, which tells Perl how to build the new
> module. Most of these scripts are really simple, and simply invoke the
> command ExtUtils::MakeMaker::WriteMakefile() with a few
> parameters. Perl then recursively descends the module directories and
> creates Makefiles based on your configuration info and the info
> supplied by the module author.
> 
> > One question - what is the end result of the build, i.e., 
> what is missing
> > for Xerces-P to run under Windows?  Is the end product a 
> dll?  I've worked
> > with C++ for years, but I'm a little new to Perl and I'm 
> having a little
> > trouble seeing the dependencies.
> 
> Two pieces: a dll, and a Perl module, Xerces.pm.
> 
> I'm hoping that 'make install' will just 'Do The Right Thing', but if
> not it shouldn't be too hard to figure out where ActiveState wants
> things to be.
> 
> > I've also got a Linux box here (Red Hat 7.1), so I can experiment a
> > bit and get familiar with the process on a supported platform.
> 
> Ok. sounds like a plan.
> 
> Let me know how it goes,
> jas.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to