Home Help Center

Build problem on Linux

I am attempting to build Ice 1.1.0 on my Mandrake 9.1 Linux system.

I found that I didn't have Xerces so I downloaded (from rpmfind) and built version 2.1.0.

Now running Ice-1.1.0 gets to a link action and encounters problems.

It first complained that it couldn't find a libxerces-c.so.

I have a libxerces-c1_1.so file on my system, so I created a symbolic link to it
to create the needed libxerces-c.so "file".

Now I'm running into unresolved external errors. As an example:

Validate.o(.text+0x449):/home/jholle/Ice-1.1.0/src/slice2xsd/Validate.cpp:156: undefined reference to `XercesDOMParser::XercesDOMParser[in-charge](XMLValidator*)'


Does anybody know how to get around this problem?

Comments

  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    Hi Jeff,

    Did you set XERCESC_HOME to the appropriate directory so that the linker can find $(XERCESC_HOME)/lib/libxerces-c.so?

    - Mark
  • Jeff HolleJeff Holle Member
    No I didn't have the XERCESC_HOME variable set. As per the Xercesc build instructions, I had XERCESCROOT set instead.

    On setting the variable that you sugguested though, this problem was fixed.

    Thanks.

    Now I have another problem.

    The problem begins with this compiler error message:

    In file included from DBI.cpp:17:
    ../Freeze/DBI.h:21:16: db.h: No such file or directory

    What resource is my system lacking?
  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    This error means that either BerkeleyDB is not installed on your system, or that DB_HOME is not set to point at its installation directory.

    - Mark
  • marcmarc FloridaAdministrators, ZeroC Staff Marc LaukienOrganization: ZeroC, Inc.Project: The Internet Communications Engine ZeroC Staff
    db.h is a header file from Berkeley DB. You can either download the source from http://www.sleepycat.com and build it yourself, or check if your Linux distribution has an RPM (or whatever format Mandrake uses) for Berkeley DB.

    After installation, you must set DB_HOME, so that Ice finds Berkeley DB on your system.
  • Jeff HolleJeff Holle Member
    Success!

    I didn't have BerkleyDB, but I downloaded and build version 4.1
    Then set the variable DB_HOME to "/usr/local/BerkeleyDB.4.1".

    Now the result file, created via "make 2> result", is empty.
Sign In or Register to comment.