Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swig python包装器未加载/链接符号_Python_C++_Swig - Fatal编程技术网

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

Swig python包装器未加载/链接符号,python,c++,swig,Python,C++,Swig,我正试图将一个作为动态库(带有开发头)提供的库包装到python中,以便与现有应用程序一起使用。我已经创建了我的.I文件,该文件编译时不会出现问题,但是当我尝试链接ndipy_wrap.o和libndi.dylib文件时,会收到一些关于找不到符号的警告 运行 ld-bundle-flat\u名称空间-undefined suppress-o\u ndipy.so ndipy\u wrap.o libndi.4.dylib 意味着我从链接器中获得了一个干净的出口,尽管尝试将模块加载到python中

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

运行
ld-bundle-flat\u名称空间-undefined suppress-o\u ndipy.so ndipy\u 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
导入ndipy
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Users/d5/Projects/ndipy/ndipy.py”,第15行,在
导入复制
ImportError:dlopen(/Users/d5/Projects/ndipy/\u ndipy.so,2):未找到符号:\uuuu Z14NDIlib\u destroyv
引用自:/Users/d5/Projects/ndipy/\u ndipy.so
应为:平面命名空间
我现在有点不知所措,盯着它看了好几个小时,我觉得在我的搜索中,我看不见树木,也看不见树木

多谢各位, 戴夫


编辑添加:us of-undefined suppress是一个类似解决方案的建议,尽管我目前无法找到它!删除此选项会导致未找到架构x86_64的ld:symbol

为什么在链接阶段使用“-undefined suppress”?如果删除该行,是否会出现类似错误?很抱歉,我应该将其包含在正文中,在搜索类似情况时,这是建议之一,删除它会导致许多未找到的符号错误Perhaps libndi.4.dylib依赖于您未链接的其他库?不幸的是,LD未找到列出的唯一符号是libndi公开的符号。在libndi.4.dylib上运行nm显示这些符号也由库导出。一直以来,我一直在努力研究这个问题,我想我最终会建立一个C++库,它与LIbnDi交互,并抽象出一些功能。这是更多的工作,但我认为它会产生更可靠的结果。为什么在链接阶段使用“-undefined suppress”?如果删除该行,是否会出现类似错误?很抱歉,我应该将其包含在正文中,在搜索类似情况时,这是建议之一,删除它会导致许多未找到的符号错误Perhaps libndi.4.dylib依赖于您未链接的其他库?不幸的是,LD未找到列出的唯一符号是libndi公开的符号。在libndi.4.dylib上运行nm显示这些符号也由库导出。一直以来,我一直在努力研究这个问题,我想我最终会建立一个C++库,它与LIbnDi交互,并抽象出一些功能。这是更多的工作,但我认为它将产生更可靠的结果。