Swig python包装器未加载/链接符号

2024-10-04 07:37:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图将一个作为动态库(带有开发头)提供的库包装到python中,以便与现有应用程序一起使用。我已经创建了我的.I文件,该文件编译时不会出现问题,但是当我尝试链接ndipy_wrap.o和libndi.dylib文件时,会收到一些关于找不到符号的警告

运行 ld -bundle -flat_namespace -undefined suppress -o _ndipy.so ndipy_wrap.o libndi.4.dylib 意味着我从链接器中获得了一个干净的出口,尽管尝试将模块加载到python中会导致:

import ndipy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/d5/Projects/ndipy/ndipy.py", line 15, in <module>
    import _ndipy
ImportError: dlopen(/Users/d5/Projects/ndipy/_ndipy.so, 2): Symbol not found: __Z14NDIlib_destroyv
  Referenced from: /Users/d5/Projects/ndipy/_ndipy.so
  Expected in: flat namespace

我现在有点不知所措,盯着它看了好几个小时,我觉得在我的搜索中,我看不见树木,也看不见树木

多谢各位, 戴夫

编辑添加:us of-undefined suppress是一个类似解决方案的建议,尽管我目前无法找到它!删除此选项将导致ld: symbol(s) not found for architecture x86_64


Tags: 文件inso链接namespaceusersprojectsdylib