AIX futas ideju link problema
Sziasztok,
Korabban kuzdottem AIX linkelessel es kaptam valaszt a problemamra, igy most batorkodok megint hozzatok fordulni segitsegert.
Adott egy executable (ucsrvwp) amit egy rakat lib-et archive libet hasznal. ldd alapjan minden rendben:
-bash-5.1$ ldd ./ucsrvwp ./ucsrvwp needs: /usr/lib/libc.a(shr_64.o) /usr/lib/libpthread.a(shr_xpg5_64.o) /opt/freeware/lib//libstdc++.a(libstdc++.so.6) /intsys/M122AD/B/automationengine/bin/libzu00132.a /intsys/M122AD/B/automationengine/bin/libucmsgq.a /intsys/M122AD/B/automationengine/bin/libsysapi.a /intsys/M122AD/B/automationengine/bin/libuccache.a /usr/lib/libdl.a(shr_64.o) /intsys/M122AD/B/automationengine/bin/libzusynchk.a /intsys/M122AD/B/automationengine/bin/libunicode.a /intsys/M122AD/B/automationengine/bin/libzukms.a /intsys/M122AD/B/automationengine/bin/libzugss.a /intsys/M122AD/B/automationengine/bin/libucudb32.a /intsys/M122AD/B/automationengine/bin/libucsj.a /intsys/M122AD/B/automationengine/bin/libucusqlsl.a /intsys/M122AD/B/automationengine/bin/libucuqm.a /intsys/M122AD/B/automationengine/bin/libucuhost.a /intsys/M122AD/B/automationengine/bin/libucreprtr.a /intsys/M122AD/B/automationengine/bin/libucuser_r.a /intsys/M122AD/B/automationengine/bin/libucprmptr.a /intsys/M122AD/B/automationengine/bin/libucdvar_r.a /usr/lib/libc.a(_shr_64.o) /unix /usr/lib/libcrypt.a(shr_64.o) /usr/lib/libpthread.a(_shr_xpg5_64.o) /opt/freeware/lib//libgcc_s.a(shr.o) /usr/lib/libc++.a(shr_64.o) /usr/lib/libc++.a(cxxabi_64.o) /intsys/M122AD/B/automationengine/bin/libuc001.a /intsys/M122AD/B/automationengine/bin/libucexith.a /intsys/M122AD/B/automationengine/bin/libcppcore.a /intsys/M122AD/B/automationengine/bin/libucuohc.a /intsys/M122AD/B/automationengine/bin/libucusr.a /intsys/M122AD/B/automationengine/bin/libucuacl.a /intsys/M122AD/B/automationengine/bin/libucumeld.a /intsys/M122AD/B/automationengine/bin/libucukal.a /intsys/M122AD/B/automationengine/bin/libucurep.a /intsys/M122AD/B/automationengine/bin/libzuxml.a /intsys/M122AD/B/automationengine/bin/libucdsfun.a /intsys/M122AD/B/automationengine/bin/libucucrypt.a /intsys/M122AD/B/automationengine/bin/libucqert.a /intsys/M122AD/B/automationengine/bin/libperiodcalc.a /intsys/M122AD/B/automationengine/bin/libucuhg.a /intsys/M122AD/B/automationengine/bin/libucuolcprc.a /intsys/M122AD/B/automationengine/bin/libucuilm.a /intsys/M122AD/B/automationengine/bin/libucumulti.a /intsys/M122AD/B/automationengine/bin/libucsmtp.a /intsys/M122AD/B/automationengine/bin/libucuhsta.a /intsys/M122AD/B/automationengine/bin/libucucc.a /intsys/M122AD/B/automationengine/bin/libucldap.a /intsys/M122AD/B/automationengine/bin/libucumqa.a /intsys/M122AD/B/automationengine/bin/libucrtl.a /usr/lib/libC.a(shrcore_64.o) /usr/lib/libC.a(ansicore_64.o)
Viszont futas idoben a kovetkezo hibauzenettel szall el:
-bash-5.1$ ./ucsrvwp Could not load program ucsrvwp: Symbol resolution failed for ucsrvwp because: Symbol _ZN7automic7unicode9converterC1EN5boost17basic_string_viewIcSt11char_traitsIcEEES6_ccm (number 414) is not exported from dependent module /intsys/M122AD/B/automationengine/bin/libunicode.a. Symbol _ZNK7automic7unicode9converterclB5cxx11EN5boost17basic_string_viewIcSt11char_traitsIcEEE (number 415) is not exported from dependent module /intsys/M122AD/B/automationengine/bin/libunicode.a. Examine .loader section symbols with the 'dump -Tv' command.
Minden komponenst gcc-vel forditunk, -std=c++14 es -maix64 opcioval.
A kerdeses construktor demangler szerint a kovetkezo:
automic::unicode::converter::converter(boost::basic_string_view<char, std::char_traits<char> >, boost::basic_string_view<char, std::char_traits<char> >, char, char, unsigned long)
Az libunicode.a ezeket exportalja a dump alapjan (-Tv -X64 opciok):
-bash-5.1$ dump -X64 -Tv libunicode.a | grep 7automic7unicode9converter [522] 0x20007b90 .data EXP DS Ldef [noIMid] _ZN7automic7unicode9converterC2EN5boost17basic_string_viewIcSt11char_traitsIcEEES6_ccm [523] 0x20007b90 .data EXP DS Ldef [noIMid] _ZN7automic7unicode9converterC1EN5boost17basic_string_viewIcSt11char_traitsIcEEES6_ccm [524] 0x20007ba8 .data EXP DS Ldef [noIMid] _ZNK7automic7unicode9converterclB5cxx11EN5boost17basic_string_viewIcSt11char_traitsIcEEE [525] 0x20007bc0 .data EXP DS Ldef [noIMid] _ZN7automic7unicode9converterD2Ev [526] 0x20007bc0 .data EXP DS Ldef [noIMid] _ZN7automic7unicode9converterD1Ev [962] 0x2000a3b0 .data EXP DS Ldef [noIMid] _ZN7automic7unicode9converterC2ENS0_8encodingES2_ccm [963] 0x2000a3b0 .data EXP DS Ldef [noIMid] _ZN7automic7unicode9converterC1ENS0_8encodingES2_ccm [964] 0x2000a3c8 .data EXP DS Ldef [noIMid] _ZNK7automic7unicode9converterclB5cxx11EN5boost17basic_string_viewIcSt11char_traitsIcEEEm
demangler: automic::unicode::converter::converter(boost::basic_string_view<char, std::char_traits<char> >, boost::basic_string_view<char, std::char_traits<char> >, char, char, unsigned long) automic::unicode::converter::converter(boost::basic_string_view<char, std::char_traits<char> >, boost::basic_string_view<char, std::char_traits<char> >, char, char, unsigned long) automic::unicode::converter::operator()[abi:cxx11](boost::basic_string_view<char, std::char_traits<char> >) const automic::unicode::converter::~converter() automic::unicode::converter::~converter() automic::unicode::converter::converter(automic::unicode::encoding, automic::unicode::encoding, char, char, unsigned long) automic::unicode::converter::converter(automic::unicode::encoding, automic::unicode::encoding, char, char, unsigned long) automic::unicode::converter::operator()[abi:cxx11](boost::basic_string_view<char, std::char_traits<char> >, unsigned long) const
Mi lehet a hiba?
- Tovább (AIX futas ideju link problema)