是否可以在java中通过Teamspeak.so加载System.loadLibrary库并访问.h文件中声明的方法?(源是来自/ ts3_sdk_3.0.3.2 / .h /.h/serverlib.h的文件;来自/bin/libts3server_linux_amd64.so的.so文件)
我可以加载库:
System.loadLibrary("ts3server_linux_amd64"); -无错误地工作。
当我尝试使用一种方法时,我会得到一个
java.lang.UnsatisfiedLinkError
测试代码:
public class main {
我正在尝试运行动态可执行文件(xxx),但收到以下错误:
$ ./xxx
./xxx: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./xxx)
./xxx: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by ./xxx)
作为2.12版系统中的libc,对于我的二进制文件来说太旧了。
我已经复制了libc的2.27版,它可以与这个特定的二进制文件一起工作。如果我尝试使用LD_PRELOAD运行它:
$ LD_PRELOAD=
我编译了一个包含binutils、linux-headers、linux-2.6.9和glibc 2.3.2、gcc等的包。
这最终创建了一个用于加载到卫星信号接收器上的文件bin。
当我想运行一个编译的外部程序时,我得到一个错误:relocation error symbol not defined in libc.so.6。
符号是bcopy。它是在静态库(libc.a)和动态libc-2.3.2.so中定义的。但是如何才能被包含在libc.so.6中呢
是否可以导出此symbol libc.so.6
我无法用python加载共享对象库。我尝试将LD_LIBRARY_PATH设置为someObject.o所在的位置,当我使用非sudo命令运行python脚本时,这是可行的,但是当我使用sudo时,会遇到链接错误。
OSError: bbumintflib.o: cannot open shared object file: No such file or directory
有人知道如何将.o文件链接到.so文件吗?
使用ldd,我知道.so找不到.o文件。
>>>ldd someSharedObject.so
linux-vdso.so.1 (0x00007ffca69a