[EMAIL PROTECTED] (Jason E. Stewart) writes:

> I have attempted several times to build XML::Xerces for Perl.  I still 
> haven't been successful.  I've done several searches on the web to find 
> help but have come up empty.  Thus I've decided to bother you...I hope 
> you can help me.
> 
> BACKGROUND:
> My operating system:        SunOS 5.7
> My C++ compiler:            Sun WorkShop 6 2000/04/07 C++ 5.1
> My version of perl:         v5.6.0

if you want to use unicode, you'll want to upgrade that.

> My version of XercesC++:    xerces-c_2_3_0-Sol2.7ForCC
> My version of XML::Xerces:  XML-Xerces-2.3.0-3

so far so good.

> I downloaded the binary version of XercesC++ to my home directory, 
> extracted everything from the .gz file, set appropriate environment 
> variables, and the samples ran just fine.

ok, that's useful

> I then proceeded to follow instructions on downloading and building the 
> XML::Xerces for Perl.  I created a small script to set up the build 
> environment.  That script is a csh file whose contents are:
> 
> # Begin csh file
> setenv PERLLIB /home/younkin/install/XML-Xerces-2.3.0-3/blib/lib
> setenv MYXERCESCROOT /home/younkin/install/xerces-c_2_3_0-Sol2.7ForCC
> setenv XERCES_CONFIG $MYXERCESCROOT/etc/config.status
> setenv XERCES_INCLUDE $MYXERCESCROOT/include
> setenv XERCES_LIB $MYXERCESCROOT/lib
> setenv LD_LIBRARY_PATH  $MYXERCESCROOT/lib
> setenv LD_RUN_PATH 
> "/lib:/home/younkin/install/xerces-c_2_3_0-Sol2.7ForCC/lib:/apps/base/SUNWspro/WS6/lib"
> # End csh file

Ok, you didn't define XERCESCROOT - which (unfortunately) is critical
for building things with xerces-c.

> Then I started in following the steps provided on your web page:
> 
> STEP 1:  perl Makefile.PL
> This step worked fine, with the following output:
> 
> # Begin output
> Using XERCES_LIB = /home/younkin/install/xerces-c_2_3_0-Sol2.7ForCC/lib
> Using XERCES_INCLUDE = 
> /home/younkin/install/xerces-c_2_3_0-Sol2.7ForCC/include
> Using Xerces-C version info from 
> /home/younkin/install/xerces-c_2_3_0-Sol2.7ForCC/include/xercesc/util/XercesVersion.hpp
> Checking to see if libxerces is in your library path...Success!!
> Using Xerces-C version: 2.3.0
> Checking if your kit is complete...
> Looks good
> Processing hints file hints/solaris_2.pl
> Writing Makefile for Handler
> Writing Makefile for XML::Xerces
> # End output

Because you didn't define XERCESCROOT, Makefile.PL doesn't know where
to look to find the config.status file. The Xerces-C people promised
me that they would start included it for the binary
distributions. Because I can't read your config.status file, I can't
find where your C++ compiler is located, nor can I find any of the
CFLAGS or LDFLAGS used to build Xerces-C - which means Perl has to
guess, and it is notoriously bad at guessing...

> cc -c -I. -IHandler 
> -I/home/younkin/install/xerces-c_2_3_0-Sol2.7ForCC/include -D_REENTRANT 
> -O     -DVERSION=\"0.10\" -DXS_VERSION=\"0.10\" -KPIC 
> -I/apps/base/lib/perl5/5.6.0/sun4-solaris/CORE  PerlCallbackHandler.cpp
> cc: No input file specified, no output generated

This is the error you get when using cc on a C++ file - I can't
remember why - whether it's a license issue, or what.

> I determined that the generated makefiles set the CC variable to 'cc' so 
> I tried 'CC' (upper case as opposed to lower case).  This helped but I 
> got the following compiler error:
> 
> # Begin output
> CC -c -I. -IHandler 
> -I/home/younkin/install/xerces-c_2_3_0-Sol2.7ForCC/include -D_REENTRANT 
> -O     -DVERSION=\"2.3.0-3\" -DXS_VERSION=\"2.3.0-3\" -KPIC 
> -I/apps/base/lib/perl5/5.6.0/sun4-solaris/CORE  Xerces.cpp
> "Xerces.cpp", line 499: Error: PERL_MAGIC_tied is not defined.
> "Xerces.cpp", line 845: Warning: String literal converted to char* in 
> initialization.
> "Xerces.cpp", line 862: Warning: String literal converted to char* in 
> initialization.
> "Xerces.cpp", line 879: Warning: String literal converted to char* in 
> initialization.
> "Xerces.cpp", line 896: Warning: String literal converted to char* in 
> initialization.
> 1 Error(s) and 4 Warning(s) detected.
> # End output
> 
> 
> I did a 'find' in both the XML_Xerces and xercesc directories and did 
> not find any definition of PERL_MAGIC_tied anywhere.

Sorry, 2.3.0-4 solves this problem, that is a Perl-5.8 variable, and
you're using 5.6. If you don't want to upgrade XML::Xerces again, you
can simply modify the one use of PERL_MAGIC_tied to be the character:
'P'. 

> When I tried the previous version of XML::Xerces, I got the same problem 
> with CC=cc, but it did build after I changed it to upper case.  

correct, it is a C++ project, you must use CC. XML::Xerces will autodetect
this if you set the XERCESCROOT variable.

> However, the make test failed and the sample perl scripts provided
> all caused a core dump.  Like I said, I haven't found anything on
> the web where folks are having the same problems that I'm having.
> I've tried several things that aren't worth explaining to you, but
> have not had any success.

Please rebuild after setting XERCESCROOT, and if the test scripts
still dump core, please post the results to the list, and we'll see
what we can do.

Cheers,
jas.

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

Reply via email to