Results 1 to 9 of 9

Thread: Problem compiling ICE 1.2.0 on Mandrake 9.1

  1. #1
    amrufon's Avatar
    amrufon is offline Registered User
    Name: Alex
    Organization: IST
    Project: jDatabase
    Join Date
    May 2003
    Location
    Manila, Philippines
    Posts
    96

    Problem compiling ICE 1.2.0 on Mandrake 9.1

    Hello.

    First off, I was able to compile ICE 1.1.1 successfully on this machine. I was upgrading it to 1.2. I went the usual way of typing:
    $ make
    It was chugging along then it choked with this message:
    In file included from ../Freeze/ConnectionI.h:20,
    from ConnectionI.cpp:15:
    ../Freeze/TransactionI.h:19:20: db_cxx.h: No such file or directory
    I would have loved to compare my configuration with my original ICE 1.1.1 but the finger was faster than my brain and said Yes to the delete directory dialog box.

    Alex

  2. #2
    kutsuya is offline Registered User
    Join Date
    Oct 2003
    Posts
    4

    Same problem on Gentoo

    Hi amrufon,

    I had the same problem on Gentoo. Found db_cxx.h in /usr/include/db3 && /usr/include/db4. So I had to patch the Make.rules file.

    -#DB_HOME ?= /opt/db
    +DB_HOME = /usr
    ifneq ($(DB_HOME),)
    - DB_FLAGS = -I$(DB_HOME)/include
    + DB_FLAGS = -I$(DB_HOME)/include/db4
    DB_LIBS = -L$(DB_HOME)/$(libsubdir) -ldb_cxx
    else
    But now I have another problem (which might be caused by the above hack):
    TransactionI.cpp: In member function `virtual void
    Freeze::TransactionI::commit()':
    TransactionI.cpp:29: syntax error before `&' token
    TransactionI.cpp:33: `dx' undeclared (first use this function)
    Now to track this problem down.

    Regards,
    --kutsuya

  3. #3
    bernard's Avatar
    bernard is offline ZeroC Staff
    Name: Bernard Normier
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Palm Beach Gardens, FL
    Posts
    1,294
    Hello,

    It's a bug in the INSTALL.LINUX. It should include a line like:
    Ice 1.2 requires Berkeley DB 4.1.25 with C++ support enabled, and built with a C++ compiler compatible with the one you are using.

    So unless your Linux distribution includes such a Berkeley DB, you will need to build and install it (which is quite straightforward).

    On Windows (unlike Linux), C++ is enabled by default. And if you are using Visual Studio .NET, you can download a full Ice binary distribution, or just the binaries of the third party packages used by Ice (including Berkeley DB).
    If you use Visual C++ 6.0, you need to setup your Visual Studio environment to use STLPort before building Berkeley DB.

    Best regards,
    Bernard

  4. #4
    amrufon's Avatar
    amrufon is offline Registered User
    Name: Alex
    Organization: IST
    Project: jDatabase
    Join Date
    May 2003
    Location
    Manila, Philippines
    Posts
    96
    Hello Bernard,

    Thanks for the heads up.

    I checked my system and I found out that I'm actually using Berkeley DB 4.0.14.

    I'll be updating this ASAP. Again, thanks.

    Alex

  5. #5
    amrufon's Avatar
    amrufon is offline Registered User
    Name: Alex
    Organization: IST
    Project: jDatabase
    Join Date
    May 2003
    Location
    Manila, Philippines
    Posts
    96
    Hello.

    I found out the hard way that Mandrake 9.1 takes installed product dependencies very seriously.

    I tried removing my existing Berkeley DB to upgrade it to the latest version and the Mandrake Uninstall informed me that doing so will force it to automatically remove a lot of dependent applications.

    So I didn't do that and recompiled the latest DB and installed it even though an older version of the DB is still active in my box. Now my problem worsened. I mucked around with the system settings ... now nothing would compile anymore.

    Do you think its adviseable to upgrade to Mandrake 9.2? If not, what other windows-user friendly Linux distribution would you recommend? Btw, the previous statement precludes the use of Gentoo. I've tried it already and I couldnt get it to work. Im so n00b.

    Thanks.

    Alex

  6. #6
    bernard's Avatar
    bernard is offline ZeroC Staff
    Name: Bernard Normier
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Palm Beach Gardens, FL
    Posts
    1,294
    Hi Alex,

    The simplest solution is to install Berkeley DB 4.1.25 in a different location (different from the Berkeley DB in your distribution). Try configure --help and look at the --prefix option.

    When you run configure, don't forget to pass the --enable-cxx option.

    Cheers,
    Bernard

  7. #7
    amrufon's Avatar
    amrufon is offline Registered User
    Name: Alex
    Organization: IST
    Project: jDatabase
    Join Date
    May 2003
    Location
    Manila, Philippines
    Posts
    96
    Hello Bernard,

    Thanks for the info. Much as I would like to try your suggestions ... the linux box won't compile anything anymore.

    I'm planning to reinstall the whole thing again in the next few days. I'm biding my time since its also my teams CVS server so bringing it down would disrupt operations.

    Looking at the bright side ... I'm getting a fresh Linux box.

    Thanks.

    Alex

  8. #8
    bernard's Avatar
    bernard is offline ZeroC Staff
    Name: Bernard Normier
    Organization: ZeroC, Inc.
    Project: Ice
    Join Date
    Feb 2003
    Location
    Palm Beach Gardens, FL
    Posts
    1,294
    Hello,

    Here are more detailed instructions on Linux:

    • Download the Berkeley DB 4.1.25 source distribution
    • Uncompress it in some directory, e.g.:
      ~/tmp> tar xzvf db-4.1.25.tar.gz
    • If you use RedHat 9, set LD_ASSUME_KERNEL to 2.4.1
      ~/tmp> export LD_ASSUME_KERNEL=2.4.1
    • Configure Berkeley DB with C++ enabled
      ~/tmp> cd db-4.1.25/build_unix
      ~/tmp/db-4.1.25/build_unix> ../dist/configure --enable-cxx
      If you want to install Berkeley DB 4.1.25 in a directory other than the default (/usr/local/BerkeleyDB.4.1) use the --prefix option to select another directory.
      You also need to pass --enable-java if you want to use this Berkeley DB installation with IceJ.
    • make
    • Make install (as a user with write permission to the installation directory, for example root)
      ~/tmp/db-4.1.25/build_unix # make install
    • Add the lib directory of this installation to your /etc/ld.so.conf, and then run ldconfig
      # ldconfig
      Alternatively you can add the Berkeley DB lib directory to your LD_LIBRARY_PATH environment variable.
    • Either set DB_HOME to your Berkeley DB 4.1.25 installation
      for example:
      > export DB_HOME=/usr/local/BerkeleyDB.4.1
      or edit $ICE_HOME/config/Make.rules to set DB_HOME to the correct directory
    • Build Ice

    Cheers,
    Bernard

  9. #9
    amrufon's Avatar
    amrufon is offline Registered User
    Name: Alex
    Organization: IST
    Project: jDatabase
    Join Date
    May 2003
    Location
    Manila, Philippines
    Posts
    96
    Bernard,

    Thanks for the info ... I've upgraded to Mandrake 9.2 download edition and was able to compile Ice 1.2 successfully.

    A note though, the development files for readline is not installed by default by Mandrake but thats easily fixed. Still, Mandrake 9.2 is now more Windows-user friendly than ever ... I'm looking forward to getting the Mandrake 9.2 Powerpack.

    Thanks again for the info.

    Alex
    Last edited by amrufon; 11-07-2003 at 01:48 AM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Problem compiling C++
    By bobc in forum Comments
    Replies: 4
    Last Post: 06-22-2009, 09:08 AM
  2. Problem compiling Ice 3.3b
    By scottie in forum Bug Reports
    Replies: 6
    Last Post: 04-16-2008, 06:01 AM
  3. problem in compiling icestormS with vc6
    By leya in forum Help Center
    Replies: 5
    Last Post: 03-15-2006, 01:19 AM
  4. Problem compiling Icicle
    By andreynech in forum Help Center
    Replies: 10
    Last Post: 05-05-2004, 08:24 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •