Portál AbcLinuxu, 12. května 2025 15:38
Dobrý den. Mám následující problém: kompilace programu Ekiga 3.0.0 (opal-3.4.1) i 3.0.1 (opal-3.4.2) skončí vždy touto chybou :
/usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::OnSendingPDU(H245_OpenLogicalChannel&) const' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::OnReceivedPDU(H245_H2250LogicalChannelParameters const&, unsigned int&)' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::OnReceivedAckPDU(H245_H2250LogicalChannelAckParameters const&)' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::SetInitialBandwidth()' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::GetDirection() const' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::OnReceivedAckPDU(H245_OpenLogicalChannelAck const&)' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::~H323_H224Channel()' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::OnReceivedPDU(H245_OpenLogicalChannel const&, unsigned int&)' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::ExtractTransport(H245_TransportAddress const&, bool, unsigned int&)' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::OnSendingPDU(H245_H2250LogicalChannelParameters&) const' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::Start()' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::Close()' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::OnSendOpenAck(H245_OpenLogicalChannel const&, H245_OpenLogicalChannelAck&) const' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::~H323_H224Channel()' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::OnSendOpenAck(H245_H2250LogicalChannelAckParameters&) const' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::Open()' /usr/local/lib/libopal.so: undefined reference to `H323_H224Channel::SetDynamicRTPPayloadType(int)'
Pokud vyměním verze opalu, spadne to dříve, kvůli změnám napsaným v changelogu. Progres u těchto knihoven je bohužel značný... Je chyba v ptlib? Je zvláštní, že když například zkusím
objdump -t /usr/local/lib/libopal.so|grep H323_H224Channel
dostanu toto:
00000000 *UND* 00000000 _ZNK16H323_H224Channel12OnSendingPDUER23H245_OpenLogicalChannel 00000000 *UND* 00000000 _ZN16H323_H224Channel13OnReceivedPDUERK34H245_H2250LogicalChannelParametersRj 00000000 *UND* 00000000 _ZN16H323_H224Channel16OnReceivedAckPDUERK37H245_H2250LogicalChannelAckParameters 00000000 *UND* 00000000 _ZN16H323_H224Channel19SetInitialBandwidthEv 00000000 *UND* 00000000 _ZNK16H323_H224Channel12GetDirectionEv 00000000 *UND* 00000000 _ZN16H323_H224Channel16OnReceivedAckPDUERK26H245_OpenLogicalChannelAck 00000000 *UND* 00000000 _ZN16H323_H224ChannelD1Ev 006b9b04 w F .text 00000084 _ZNK16H323_H224Channel20InternalIsDescendantEPKc 006b9bb6 w F .text 00000025 _ZNK16H323_H224Channel25CompareObjectMemoryDirectERK7PObject 00000000 *UND* 00000000 _ZN16H323_H224Channel13OnReceivedPDUERK23H245_OpenLogicalChannelRj 006b9aec w F .text 00000017 _ZN16H323_H224Channel5ClassEv 00000000 *UND* 00000000 _ZN16H323_H224Channel16ExtractTransportERK21H245_TransportAddressbRj 00000000 *UND* 00000000 _ZNK16H323_H224Channel12OnSendingPDUER34H245_H2250LogicalChannelParameters 00000000 *UND* 00000000 _ZN16H323_H224Channel5StartEv 0080bba0 w O .data 0000008c _ZTV16H323_H224Channel 00000000 *UND* 00000000 _ZN16H323_H224Channel5CloseEv 006b9b88 w F .text 0000002d _ZNK16H323_H224Channel8GetClassEj 0080bc2c w O .data 0000000c _ZTI16H323_H224Channel 00000000 *UND* 00000000 _ZNK16H323_H224Channel13OnSendOpenAckERK23H245_OpenLogicalChannelR26H245_OpenLogicalChannelAck 007abc89 w O .rodata 00000013 _ZTS16H323_H224Channel 00000000 *UND* 00000000 _ZN16H323_H224ChannelD0Ev 006b9bdc w F .text 0000000b _ZNK16H323_H224Channel24GetDynamicRTPPayloadTypeEv 00000000 *UND* 00000000 _ZNK16H323_H224Channel13OnSendOpenAckER37H245_H2250LogicalChannelAckParameters 00000000 *UND* 00000000 _ZN16H323_H224Channel4OpenEv 00000000 *UND* 00000000 _ZN16H323_H224Channel24SetDynamicRTPPayloadTypeEi
tedy zdá se že funkce jsou v knihovně uvedeny? Bohužel moc nechápu podivné kombinace čísel a písmen, které pravděpodobně signalizují vstupní a výstupní proměnné (?) je tedy možné že ke změně došlo tam? Nebo je tato knihovna slinkovaná ještě s dalšími, ve kterých by mohl být problém? Zde je výstup ldd:
ldd /usr/local/lib/libopal.so linux-gate.so.1 => (0xffffe000) libdl.so.2 => /lib/tls/libdl.so.2 (0xb7775000) libpt.so.2.4.2 => /usr/lib/libpt.so.2.4.2 (0xb74d5000) libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb74be000) libssl.so.0 => /usr/lib/libssl.so.0 (0xb7480000) libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0xb7347000) libexpat.so.0 => /usr/lib/libexpat.so.0 (0xb7327000) libSDL-1.2.so.0 => /usr/lib/libSDL-1.2.so.0 (0xb728e000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb727a000) libresolv.so.2 => /lib/tls/libresolv.so.2 (0xb7268000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb718e000) libm.so.6 => /lib/tls/libm.so.6 (0xb7168000) libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0xb715f000) libc.so.6 => /lib/tls/libc.so.6 (0xb7045000) /lib/ld-linux.so.2 (0x80000000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb6f53000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb6f45000) libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6f41000) libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6f38000) libvga.so.1 => /usr/lib/libvga.so.1 (0xb6ee4000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb6ee1000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb6edc000)
Podařilo se někomu poslední Ekigu zkompilovat? Nebo mám zkusit sáhnout po SVN verzi? Předem děkuji za reakce.
Dobrý den, omlouvám se že to vytahuju.. Po čachrování s několika verzemi opalu, ptlibu i Ekigy jsem se dostal do "zkompilovatelného" stavu ve verzích ptlib-2.5.2,opal-3.5.2 a Ekiga ze SVN. Program se sice spustí, ale po několika hláškách spadne, přičemž vyplivne toto:
ekiga: symbol lookup error: /usr/lib/libgtk-x11-2.0.so.0: undefined symbol: g_signal_new_class_handler
GTK+ mám ve verzi 2.14, a funkce v knihovně je, ovšem stejně jako předchozí :chybějící" funkce obsažené libopal.so je nadepsána *UND* :
objdump -t /usr/lib/libgtk-x11-2.0.so.0 |grep g_signal_new_class_handler 00000000 F *UND* 0000007f g_signal_new_class_handler
Můžete mi prosím někdo ze zkušenějších linuxových guru poradit, kde mám hledat chybu? Znamená to *UND* to že funkce je v souboru libgtk pouze jako kostra, a tělo je jinde? Kde tedy? Rozumíte tomuto někdo?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.