[LUGOS] Linux g++ ukaz!!!
Novak Dusan ITICMC
d.novak at iskratel.si
Wed Aug 18 16:30:55 CEST 2004
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: _ZN4sapi18ApplicationIfDummy6createEv
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