首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数已添加到C代码,无法识别swig界面;“没有属性'set_latency'”

函数已添加到C代码,无法识别swig界面;“没有属性'set_latency'”
EN

Stack Overflow用户
提问于 2018-07-21 02:37:33
回答 1查看 124关注 0票数 1

我正在使用libmpsse与FTDI芯片通信,为了增加吞吐量,我想在C代码中添加一个函数来降低芯片的延迟(由libFTDI支持),然后使用swig将该函数与Python一起使用。然而,当我调用创建的函数时,我得到一个错误,说没有'set_latency‘属性(详细信息如下)。

对于mpsse.c,我在底部添加了:

代码语言:javascript
复制
int set_latency(struct mpsse_context* mpsse, int latency) {
    return ftdi_set_latency_timer(&mpsse->ftdi, latency);
}

对于mpsse.h,我在Version函数后面添加了:

代码语言:javascript
复制
int set_latency(struct mpsse_context* mpsse, int latency);

然后我使用以下命令重新编译了swig界面:

代码语言:javascript
复制
make clean
swig -python mpsse.i
gcc -fpic -c mpsse.c mpsse_wrap.c -I/usr/include/python2.7/
gcc -shared mpsse.o mpsse_wrap.o -o _mpsse.so

我不熟悉swig,但在mpsse.i中,包含了mpsse.h,我相信这意味着它不需要更改。

使用swig后,这会添加到swig在pylibmpsse.py中生成的代码中:

代码语言:javascript
复制
def set_latency(mpsse, latency):
    return _pylibmpsse.set_latency(mpsse, latency)
set_latency = _pylibmpsse.set_latency

我通过将下面的代码添加到mpsse.py来调用生成的代码:

代码语言:javascript
复制
def set_latency(self, latency):
    return _mpsse.set_latency(self.context, latency)

以下是错误消息:

代码语言:javascript
复制
Traceback (most recent call last):
  File "bw-test.py", line 1, in <module>
    from mpsse import *
  File "[...]/libmpsse-master/src/mpsse.py", line 1, in <module>
    import pylibmpsse as _mpsse
  File "[...]/libmpsse-master/src/pylibmpsse.py", line 455, in <module>
    set_latency = _pylibmpsse.set_latency
AttributeError: 'module' object has no attribute 'set_latency'

这个错误似乎暗示着pylibmpsse.py文件或_pylibmpsse (用swig_import_helper()生成)有问题,但我对swig还不够熟悉,无法知道。我尝试显式地声明我在mpsse.i中添加的函数,以及在类似的stackoverflow问题中看到的一些格式更改,但都没有改变错误消息。如果有人能提供一些关于我做错了什么的见解,我将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2018-07-21 12:43:10

看起来SWIG生成的扩展模块是_pylibmpsse,所以您的最后一个gcc命令应该是:

代码语言:javascript
复制
gcc -shared mpsse.o mpsse_wrap.o -o _pylibmpsse.so

换句话说,我怀疑你从来没有更换过原始的SWIG模块。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51448572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档