Tomasz Dołbniak
16 lat temu
Witam.
Spotkałem się niedawno z pewnym problemem w pracy. Próbowałem
skompilować pewien kod na solarisie, konkretnie w wersji debug(release
działa bez problemu). Dostałem błąd linkowania takiej treści:
Undefined first referenced
symbol in file
bool std::operator==<char,std::char_traits<char>,std::allocator<char> >
(const std::basic_string<__type_0,__type_1,__type_2>&,const __type_0*)
test.o
ld: fatal: Symbol referencing errors. No output written to a.out
Problem tkwi w tym zapisie:
std::string("AAA") == "AAA"
Problem pojawia się tylko na określonych maszynach(na innych, również
z solarisem, kompilacja przechodzi w obu trybach). Odpowiedni dział
już się tym zajmuje, ale jestem ciekaw co może być przyczyną tego
błędu. A najbardziej ciekawi mnie, dlaczego linker nie może znaleźć
definicji tego operatora tylko w wersji debug. Może ktoś spotkał się z
takim problemem?
Bardziej dokładne informacje o systemie:
$ uname -a
SunOS devsrv25 5.10 Generic_137137-09 sun4u sparc SUNW,SPARC-Enterprise
Spotkałem się niedawno z pewnym problemem w pracy. Próbowałem
skompilować pewien kod na solarisie, konkretnie w wersji debug(release
działa bez problemu). Dostałem błąd linkowania takiej treści:
Undefined first referenced
symbol in file
bool std::operator==<char,std::char_traits<char>,std::allocator<char> >
(const std::basic_string<__type_0,__type_1,__type_2>&,const __type_0*)
test.o
ld: fatal: Symbol referencing errors. No output written to a.out
Problem tkwi w tym zapisie:
std::string("AAA") == "AAA"
Problem pojawia się tylko na określonych maszynach(na innych, również
z solarisem, kompilacja przechodzi w obu trybach). Odpowiedni dział
już się tym zajmuje, ale jestem ciekaw co może być przyczyną tego
błędu. A najbardziej ciekawi mnie, dlaczego linker nie może znaleźć
definicji tego operatora tylko w wersji debug. Może ktoś spotkał się z
takim problemem?
Bardziej dokładne informacje o systemie:
$ uname -a
SunOS devsrv25 5.10 Generic_137137-09 sun4u sparc SUNW,SPARC-Enterprise