ld: 0711-224 WARNING: Duplicate symbol: .std::bad_exception::~bad_exception()
ld: 0711-224 WARNING: Duplicate symbol: std::bad_exception::~bad_exception()
ld: 0711-224 WARNING: Duplicate symbol: .std::bad_typeid::~bad_typeid()
ld: 0711-224 WARNING: Duplicate symbol: std::bad_typeid::~bad_typeid()
ld: 0711-224 WARNING: Duplicate symbol: .std::logic_error::~logic_error()
ld: 0711-224 WARNING: Duplicate symbol: std::logic_error::~logic_error()
ld: 0711-224 WARNING: Duplicate symbol: std::logic_error::what() const
ld: 0711-224 WARNING: Duplicate symbol: std::logic_error::_Doraise() const
ld: 0711-224 WARNING: Duplicate symbol: .std::ios_base::failure::~failure()
ld: 0711-224 WARNING: Duplicate symbol: std::ios_base::failure::~failure()
ld: 0711-224 WARNING: Duplicate symbol: std::exception::what() const
ld: 0711-224 WARNING: Duplicate symbol: std::bad_alloc::_Doraise() const
Those warnings are due to the standard C++ iostream implementation. Some functions are defined in the header of iostream, and they get included in both a library and inside your application. The linker complains about duplicate symbols being defined by default. This is not a problem with ICU.
You have two options to fix this problem.
1) Add -bh:5 when you link your application to silence these warnings
2) Ask the AIX or the Visual Age people to fix their iostream implementation to silence these warnings.
Using -O and removing -bnoquiet may reduce the number warnings, but it won't remove them completely like one of the above options.