[LUGOS] Linux g++ ukaz!!!

Gregor Berginc gregor.berginc at guest.arnes.si
Wed Aug 18 17:08:00 CEST 2004


Ce prav razumem stack trace, potem ti v konstruktorju SniffSocket 
poklices System.load("/Pegasus_IMS/spooflib.so"). Bolj je zanimiv 
preostali del, ki pravi "undefined symbol". Ali omenjeni simbol 
kakorkoli kje omenjas oz. klices?

Na hitro ti lahko recem naslednje:

1. Ce pogledas, kateri je undefined symbol: ali je slucajno mozno, da je 
problem v velikem C-ju, ki se pojavi v imenu (v delu, kjer pise 
Application). Torej, namesto tvojega

--------------\
_ZN4sapi18ApplCicationIfDummy6createEv

raje

_ZN4sapi18ApplicationIfDummy6createEv

2. Ce temu ni tako, potem bi te ponovno prosil, da mi posljes zadeve, ki 
sem te jih prosil ze prej (tokrat te prosim se za del konstruktorja 
SniffSocket v okolici vrstice 151).

lp,
Grega


Novak Dusan ITICMC wrote:
> Ojla,
> 
> Hvala za odgovor...
> Morda sem napisal malenkost nerazumljivo...
> Ko inicializiram, knjižnico s pomičjo native init() methode, dobim naslednji exception:
> 
> java.lang.UnsatisfiedLinkError: /Pegasus_IMS/spooflib.so: /Pegasus_IMS/spooflib.so: undefined symbol: _ZN4sapi18ApplCicationIfDummy6createEv
>         at java.lang.ClassLoader$NativeLibrary.load(Native Method)
>         at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1560)
>         at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1456)
>         at java.lang.Runtime.load0(Runtime.java:737)
>         at java.lang.System.load(System.java:811)
>         atpegasus.simulation.ims.ue.stack.network.SniffSocket.<clinit>(SniffSocket.java:151)
>         at pegasus.simulation.ims.ue.stack.network.UdpNetworkCentre.<init>(UdpNetworkCentre.java:142)
>         at pegasus.simulation.ims.ue.stack.network.MessageCentre.<init>(MessageCentre.java:180)
>         at pegasus.simulation.ims.ue.jain.protocol.ip.sip.SipProviderRouterImpl.<init>(SipProviderRouterImpl.java:175)
>         at pegasus.simulation.ims.ue.jain.protocol.ip.sip.SipStackSingletonImpl.createSipProvider(SipStackSingletonImpl.java:242)
>         at pegasus.simulation.ims.ue.jainuser.UserAgentProvider.<init>(UserAgentProvider.java:455)
>         at pegasus.simulation.ims.ue.SipEngine.<init>(SipEngine.java:488)
>         at pegasus.testProcedure.network.ims.cscf.TpStartServerStack.runTp(TpStartServerStack.java:147)
>         at pegasus.testProcedure.TestProcedureExec.runTp(TestProcedureExec.java:335)
>         at pegasus.testProcedure.TestProcedureExec.run(TestProcedureExec.java:197)
>         at java.lang.Thread.run(Thread.java:534)
> 
> 
> V tem trenutku uporabljam samo init() metodo ki naloži knjižnico.
> 
> Hvala že vnaprej..
> 
> Dušan
> 
> 
> -----Original Message-----
> From: Gregor Berginc [mailto:gregor.berginc at guest.arnes.si] 
> Sent: Wednesday, August 18, 2004 4:26 PM
> To: lugos-list at lugos.si
> Subject: Re: [LUGOS] Linux g++ ukaz!!!
> 
> Novak Dusan ITICMC wrote:
> 
>>Pozdravljeni,
>>
>>Želel bi obstoječo *.so statično knjižnico povezati s tremi *.a knjižnicami...
>>
>>Spodaj prilagam skripto.
>>
>>#!/bin/sh
>>
>>g++ -O2 -o spooflib.so -shared -lSigComp -lpm_stub -lstats_stub -L. 
>>-lpthread -lipq -I/usr/java/j2sdk1.4.2_04/include 
>>-I/usr/java/j2sdk1.4.2_04/include/linux Netlink.cpp tcp.cpp udp.cpp 
>>TCPBaseThread.cpp UDPBaseThread.cpp spoofit.cpp Packet.cpp 
>>BaseThread.cpp -static
>>
>>Težava ni pri linkanju, ampak ko poskušam z javo aplikacijo preko JNI-ja 
>>dostopati do funkcij v eni izmed treh SigComp, lpm_stub ali lstats_stub 
>>dobim že pri JNI init() metodi napako, ki pravi, da ne more najti ene 
>>izmed uporabljenih funkcij...
> 
> 
> Ali si preveril, ce se System.loadLibrary("spooflib"); uspesno izvede. 
> Ce ti JVM knjiznico najde, potem je naceloma lahko problem samo v tem, 
> da v knjiznici funkcija s popolnoma enakim signaturjem kot si ga dolocil 
> v javi ne obstaja. Ce se ti da, potem napisi naslednje stvari:
> 
> 1. definicijo javanske native funkcije (tiste, ki ti je ne najde)
> 
> 2. definicijo funkcije v headerju (iste funkcije, ki ti jo je jni generiral)
> 
> Seveda lahko dodas se podrobnejse sporocilo o napaki.
> 
> Ce bo v tistem kaj narobe, se ti oglasim nazaj.
> 
> lp,
> Grega
> 
> 




More information about the lugos-list mailing list