I solve it myself already. thanks.
---------------------------------------
I build ICE-3.0.1 in Redhat Linux 9.0. but it failed.
I already install Berkeley DB 4.3.29 with --enable-cxx.
the error message is follow, help me.
----------
c++ -c -I.. -I../../include -DFREEZE_API_EXPORTS -ftemplate-depth-128 -Wall -D_REENTRANT -fPIC -g EvictorI.cpp
EvictorI.cpp: In member function `virtual void Freeze::EvictorI::run()':
EvictorI.cpp:1622: parse error before `&' token
EvictorI.cpp:1627: `out' undeclared (first use this function)
EvictorI.cpp:1627: (Each undeclared identifier is reported only once for each
function it appears in.)
EvictorI.cpp:1634: parse error before `catch'
EvictorI.cpp:1637: `ex' undeclared (first use this function)
EvictorI.cpp:1637: `dx' undeclared (first use this function)
EvictorI.cpp:1641: must have at least one catch per try block
EvictorI.cpp: At global scope:
EvictorI.cpp:1642: parse error before `while'
EvictorI.cpp:1651: syntax error before `!=' token
EvictorI.cpp:1651: syntax error before `++' token
EvictorI.cpp:1654: syntax error before `->' token
EvictorI.cpp:1656: syntax error before `.' token
EvictorI.cpp:1659: syntax error before `!=' token
EvictorI.cpp:1659: syntax error before `++' token
EvictorI.cpp:1682: syntax error before `.' token
EvictorI.cpp:1683: ISO C++ forbids declaration of `evict' with no type
EvictorI.cpp:1685: parse error before `if'
EvictorI.cpp:1688: ISO C++ forbids declaration of `notifyAll' with no type
EvictorI.cpp:1689: parse error before `}' token
EvictorI.cpp:1696: syntax error before `<<' token
EvictorI.cpp:1697: syntax error before `.' token
EvictorI.cpp:1698: invalid use of `this' at top level
EvictorI.cpp:1698: `_communicator' was not declared in this scope
EvictorI.cpp:1698: ISO C++ forbids declaration of `handleFatalError' with no
type
EvictorI.cpp:1698: `int handleFatalError' redeclared as different kind of
symbol
EvictorI.cpp:77: previous declaration of `void handleFatalError(const
Freeze::EvictorPtr&, const Ice::CommunicatorPtr&)'
EvictorI.cpp:1698: initializer list being treated as compound expression
EvictorI.cpp:1699: parse error before `}' token
EvictorI.cpp:1703: syntax error before `<<' token
EvictorI.cpp:1704: syntax error before `.' token
EvictorI.cpp:1705: invalid use of `this' at top level
EvictorI.cpp:1705: `_communicator' was not declared in this scope
EvictorI.cpp:1705: ISO C++ forbids declaration of `handleFatalError' with no
type
EvictorI.cpp:1705: redefinition of `int handleFatalError'
EvictorI.cpp:1698: `int handleFatalError' previously defined here
EvictorI.cpp:1705: initializer list being treated as compound expression
EvictorI.cpp:1706: parse error before `}' token
EvictorI.cpp:1710: syntax error before `<<' token
EvictorI.cpp:1711: syntax error before `.' token
EvictorI.cpp:1712: invalid use of `this' at top level
EvictorI.cpp:1712: `_communicator' was not declared in this scope
EvictorI.cpp:1712: ISO C++ forbids declaration of `handleFatalError' with no
type
EvictorI.cpp:1712: redefinition of `int handleFatalError'
EvictorI.cpp:1705: `int handleFatalError' previously defined here
EvictorI.cpp:1712: initializer list being treated as compound expression
EvictorI.cpp:1713: parse error before `}' token
EvictorI.cpp: In member function `std::vector<std::string,
std::allocator<std::string> > Freeze::EvictorI::allDbs() const':
EvictorI.cpp:1911: no matching function for call to `Db:

pen(int, const char*,
int, DBTYPE, int, int)'
/usr/include/db_cxx.h:519: candidates are: int Db:

pen(const char*, const
char*, DBTYPE, unsigned int, int)
make[2]: *** [EvictorI.o] Error 1
make[2]: Leaving directory `/home/wuqiu/Ice-3.0.1/src/Freeze'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/wuqiu/Ice-3.0.1/src'
make: *** [all] Error 1