Skip to content

jna invokation problem #3

@colddew

Description

@colddew

https://github.com/remram44/java-cpp-example/blob/master/java-jna/java/src/edu/nyu/cpptest/cpplib/MyClass.java

[root@SzfyTestServer backup]# java -Djna.debug_load=true -classpath .:jna-5.5.0.jar MyClass
Feb 12, 2020 11:33:56 AM com.sun.jna.Native extractFromResourcePath
INFO: Looking in classpath from sun.misc.Launcher$AppClassLoader@4e0e2f2a for /com/sun/jna/linux-x86-64/libjnidispatch.so
Feb 12, 2020 11:33:56 AM com.sun.jna.Native extractFromResourcePath
INFO: Found library resource at jar:file:/opt/backup/jna-5.5.0.jar!/com/sun/jna/linux-x86-64/libjnidispatch.so
Feb 12, 2020 11:33:56 AM com.sun.jna.Native extractFromResourcePath
INFO: Extracting library to /root/.cache/JNA/temp/jna15688228076106253.tmp
Feb 12, 2020 11:33:56 AM com.sun.jna.NativeLibrary loadLibrary
INFO: Looking for library '/root/cpp_test/java-cpp-example-master/cpplib/build/libcpplib.so'
Feb 12, 2020 11:33:56 AM com.sun.jna.NativeLibrary loadLibrary
INFO: Adding paths from jna.library.path: null
Feb 12, 2020 11:33:56 AM com.sun.jna.NativeLibrary loadLibrary
INFO: Trying /root/cpp_test/java-cpp-example-master/cpplib/build/libcpplib.so
Feb 12, 2020 11:33:56 AM com.sun.jna.NativeLibrary loadLibrary
INFO: Found library '/root/cpp_test/java-cpp-example-master/cpplib/build/libcpplib.so' at /root/cpp_test/java-cpp-example-master/cpplib/build/libcpplib.so
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'MyClass': /root/cpp_test/java-cpp-example-master/cpplib/build/libcpplib.so: undefined symbol: MyClass
        at com.sun.jna.Function.<init>(Function.java:252)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:594)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:570)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:556)
        at com.sun.jna.Library$Handler.invoke(Library.java:243)
        at com.sun.proxy.$Proxy0.MyClass(Unknown Source)
        at MyClass.<init>(MyClass.java:23)
        at MyClass.main(MyClass.java:35)

when i test this demo it throw the exception, i wonder if 「cpplib_shared」 is casual, or can i use another name?

the second problem is if 「MyClass_」prefix is necessary?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions