Undefined Symbol in libCstd When Linking a C++ Application Compiled with Oracle Solaris Studio
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.
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:
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.
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