繁体   English   中英

在Python中加载C共享库期间发生OSError(未定义符号:checkedCalloc)

[英]OSError during loading of C shared library in Python (undefined symbol:checkedCalloc)

我想寻求有关以下问题的帮助。

一些理论:我正在使用Ubuntu 12.04,python2.7,并且试图在python中加载C共享库(libFSToolbox.so)。 我想使用PyFeat作为python包装器进行FEAST。 我已经编译了FEAST和FEAST必备MIToolbox。 有问题的libFSToolbox.so是FEAST编译的结果

...与现实:建筑和一切都进行得很好,但是当我尝试使用盛宴时,在导入期间会出现问题

File "test.py", line 2, in <module>
from feast import *
File "/usr/local/lib/python2.7/dist-packages/feast.py", line 25, in <module>
libFSToolbox = c.CDLL("/home/peterd/VUT/ML/FEAST-master/libFSToolbox.so"); 
File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /home/peterd/VUT/ML/FEAST-master/libFSToolbox.so: undefined symbol:     
checkedCalloc

我已经将c库编译为x64($(MAKE)libFSToolbox.so“ CXXFLAGS = -O3 -fPIC -m64”),我的python解释器也是64(尝试过:python >> platform.machine()答案:'x86_64')

感谢您的时间

我认为问题是如何在Makefile for FEAST中提供链接器的选项。

两种选择是

1)将Makefile中的行更改为FEAST

来自LINKER = gcc

链接器= ld

2)如果要使用gcc进行链接,请更改Makefile的第47行

$(链接器)-lMIToolbox -lm -L $(MITOOLBOXPATH)-共享-o libFSToolbox.so $(对象)

$(链接器)-L $(MITOOLBOXPATH)-共享-o libFSToolbox.so $(对象)-lMIToolbox -lm

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM