Undefined Symbol in libCstd When Linking a C++ Application Compiled with Oracle Solaris Studio (Doc ID 1492615.1)

Last updated on AUGUST 03, 2016

Applies to:

Oracle Solaris Studio - Version Forte Developer 6 Update 2 to 12.4 [Release 6.0 to 12]
Information in this document applies to any platform.

Symptoms

When linking together an application or shared library compiled with the Oracle Solaris Studio C++ compiler, the linker flags missing symbols that should be in libCstd.so.

Example linker error message:

 Undefined first referenced
  symbol in file
  bool std::operator==<char,std::char_traits,std::allocator >(const std::basic_string&,const __type_0*) ../src/.libs/liblog4cplus.a(fileappender.o)

In the above example, the symbol bool std::operator==<char,std::char_traits<char>,std::allocator<char> >(const std::basic_string<__type_0,__type_1,__type_2>&,const __type_0*) is missing, which is needed by object file fileappender.o. In the example, the fact that an instantiation of std::operator== is missing indicates that the symbol is provided by libCstd.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms