nm:共享库符号出现两次或一次
nm: shared library symbol appearing twice or once
我有一个共享库 (libARWrapper.so),其中包括以下两个条目,使用 nm (nm -D --defined-只有 libARWrapper.so)
00075854 T Java_org_artoolkit_ar_base_NativeInterface_arwAcceptVideoImage
00074d54 T Java_org_artoolkit_ar_base_NativeInterface_arwCapture
...
00072d54 T arwCapture
我知道 T means "The symbol is in the text (code) section."
出现两次的arwCapture和只出现一次的arwAcceptVideoImage有什么区别
我可以从 C# DllImport 调用 arwCapture,但不能 arwAcceptVideoImage。
还有很多和arwCapture一样的功能,都在org.artoolkit.ar.bash.NativeInterface下面,我用OK
其他(Java)代码可以通过NDK调用所有函数。
在 nm
发布的输出中没有证据证明您所说的内容(arwCapture()
没有出现两次 )。一个是 JNI 函数,它肯定是一个在某些时候调用 arwCapture()
的包装器。
大概 arwCapture()
是一个 c 函数,这就是为什么您可以从 C# 调用它,但是在共享对象中,尽管有 Java arwAcceptVideoImage()
方法已定义。
如果此共享对象旨在用作 JNI 对象,您应该避免从 Java 以外的其他语言调用它。而是找到原始库并使用它。
我有一个共享库 (libARWrapper.so),其中包括以下两个条目,使用 nm (nm -D --defined-只有 libARWrapper.so)
00075854 T Java_org_artoolkit_ar_base_NativeInterface_arwAcceptVideoImage
00074d54 T Java_org_artoolkit_ar_base_NativeInterface_arwCapture
...
00072d54 T arwCapture
我知道 T means "The symbol is in the text (code) section."
出现两次的arwCapture和只出现一次的arwAcceptVideoImage有什么区别
我可以从 C# DllImport 调用 arwCapture,但不能 arwAcceptVideoImage。
还有很多和arwCapture一样的功能,都在org.artoolkit.ar.bash.NativeInterface下面,我用OK
其他(Java)代码可以通过NDK调用所有函数。
在 nm
发布的输出中没有证据证明您所说的内容(arwCapture()
没有出现两次 )。一个是 JNI 函数,它肯定是一个在某些时候调用 arwCapture()
的包装器。
大概 arwCapture()
是一个 c 函数,这就是为什么您可以从 C# 调用它,但是在共享对象中,尽管有 Java arwAcceptVideoImage()
方法已定义。
如果此共享对象旨在用作 JNI 对象,您应该避免从 Java 以外的其他语言调用它。而是找到原始库并使用它。