我昨天使用SSH协议连接到另一台计算机,并尝试通过Python加载一个SO文件(将编译成C)。以下是我在CLI中得到的信息:
正在请求的文件(libLMR_解调器)“OSError:”旁边的目录与我要加载的文件位于同一个目录中(libdemodularjni_左室右室). 在
python代码(v3.5.2)如下所示:
import ctypes
sh_obj = ctypes.cdll.LoadLibrary('./libLMR_Demodulator.so')
actual_start_frequency = sh_obj.getActualStartFrequency(ctypes.c_long(0))
print('The Current Actual Frequency Is: ' + str(actual_start_frequency))
我在这里寻找如何确保带有.so文件的模块/包能够加载另一个.so文件,这取决于将当前目录更改为第一个.so文件的位置(即,在模块所在的目录中)似乎对我有效:
可能对手术也有用吗?在
@查尔斯·达菲是对的。问题来自于依赖关系。您可以通过以下命令进行验证:
有几种方法可以解决此问题:
/lib
、/usr/lib
路径,或直接将它们安装到系统中。在/etc/ld.so.conf
文件,然后运行ldconfig
刷新缓存。在使用
LD_LIBRARY_PATH
添加libs的路径,然后尝试运行脚本或者
您可以查看
dlopen
的手册以获取更多详细信息。在相关问题 更多 >
编程相关推荐