My Oracle Support Banner

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

Last updated on OCTOBER 24, 2023

Applies to:

Oracle Solaris Studio - Version Forte Developer 6 Update 2 to 12.6 [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/Oracle Developer 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

To view full details, sign in with your My Oracle Support account.

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


In this Document
Symptoms
Cause
Solution


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.