Archived

This forum has been archived. Please start a new discussion on GitHub.

Error compiling Freeze

Hi to all!

I'm new to ICE, and I would like to install it in order to test it and look at its facilities. The problem is that while I was trying to compile it from the sources I've got this error:
c++ -c -I.. -I../../include  -DFREEZE_API_EXPORTS -I/antigone/luigi/work/software/ice/db-4.3.29.NC/install/include   -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g ConnectionI.cpp
In file included from /usr/include/c++/4.0.2/backward/iostream.h:31,
                 from /antigone/luigi/work/software/ice/db-4.3.29.NC/install/include/db_cxx.h:60,
                 from ../Freeze/TransactionI.h:14,
                 from ../Freeze/ConnectionI.h:15,
                 from ConnectionI.cpp:10:
/usr/include/c++/4.0.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
In file included from ../Freeze/TransactionI.h:14,
                 from ../Freeze/ConnectionI.h:15,
                 from ConnectionI.cpp:10:
/antigone/luigi/work/software/ice/db-4.3.29.NC/install/include/db_cxx.h:61:23: error: exception.h: No such file or directory
/antigone/luigi/work/software/ice/db-4.3.29.NC/install/include/db_cxx.h:987: error: expected class-name before '{' token
make[2]: *** [ConnectionI.o] Error 1
make[2]: Leaving directory `/antigone/luigi/work/software/ice/Ice-3.0.1/src/Freeze'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/antigone/luigi/work/software/ice/Ice-3.0.1/src'
make: *** [all] Error 1

:confused:

The problem seams to be that the file db_cxx.h of BDB (I've compiled it from the ThirdParty-Sources-3.0.1.tar.gz distribution), searches for an exception.h file, which (I suppose) should be distributed with the c++ compiler, but it isn't.

I use gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux)

Can you tell me how can I solve this problem or give me a work around?

Thanks

Comments

  • bernard
    bernard Jupiter, FL
    Hi Luigi,

    The simplest solution is to use the Berkeley DB package (with C++ support) provided by with your SuSE Linux distribution, instead of building your own.

    However, if you want to build you own Berkeley DB, make sure the configuration step succeeds ... in particular, check that you get:

    #define HAVE_CXX_STDHEADERS 1

    toward the top of the generated db_cxx.h file.

    Cheers,
    Bernard
  • Solved

    Thank you Bernard.

    You was right, the

    #define HAVE_CXX_STDHEADERS 1

    was missing, so I've compiled the BDB sources again with --enable-cxx flag, and now it works.

    Thank you again.

    Luigi