I'm not a Linux guy, but the error sure looks like you're failing to link
against the Xerces library. When you're using a DLL under Windows
(equivalent to a shared library, I believe), you have to link against a stub
library called an import library to allow the linker to resolve calls into
the DLL. (That's grossly simplified, of course.) I assume you need to do
something similar under Linux. Have you tried building the samples? If that
works, take a look at how the makefiles perform a link.

-----Original Message-----
From: Henrik Jensen [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, October 23, 2001 5:29 AM
To: XercesMailingList
Subject: Newbie: undefined references when initializing


I'm having trouble getting Xerces 1.5.1 to work (am using RH Linux 6.2). 
Downloaded the source and followed the build instructions, but get these 
compiler messages when trying to make the initialize call:

-----
(from TServer.cc)

  try
    {
      XMLPlatformUtils::Initialize();
    }
  catch(const XMLException &toCatch)
    {
      cout << "boot_db: error";
    }


g++ -g -o mymud main.o TServer.o TDesc.o
TServer.o: In function 'TServer::boot_db(void)':
/home/pos/mymud/TServer.cc:61: undefined reference to 
'XMLPlatformUtils::Initialize(void)'
/home/pos/mymud/TServer.cc:63: undefined reference to 'XMLException
type_info 
function'
collect2: ld returned 1 exit status
make: *** [mymud] Error 1

-----

The environment variables XERCESCROOT and LD_LIBRARY_PATH are set, and the 
header files util/PlatformUtils.hpp and dom/DOM.hpp are included, so perhaps

the problem is in the Makefile:

-----

(from Makefile)

obj = main.o TServer.o TDesc.o

mymud : $(obj)
        g++ -g -o mymud $(obj)

main.o :        main.cc
                g++ -g -c main.cc

TServer.o :     TServer.cc TServer.h
                g++ -I/home/pos/xerces-c-src1_5_1/src/ -g -c TServer.cc

TDesc.o :       TDesc.cc TDesc.h
                g++ -g -c TDesc.cc

clean :
                rm mymud $(obj)

-----

The compiler does find the two relevant header files because of the -I
switch 
(if the line is left out, two "no such file"-messages appear), so that's not

it. Also, I've verified the spelling by looking in util/PlatformUtils.hpp,
but 
that wasn't it either.

I'm just getting into Linux so the answer is probably really simple, but any

help is appreciated a lot.

Best regards,
Henrik Jensen

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

Reply via email to