【发布时间】:2016-12-23 03:02:18
【问题描述】:
我正在尝试包装一个非常简单的 C 库,其中只包含两个 .C 源文件:dbc2dbf.c 和 blast.c
我正在执行以下操作(来自文档):
import os
from cffi import FFI
blastbuilder = FFI()
ffibuilder = FFI()
with open(os.path.join(os.path.dirname(__file__), "c-src/blast.c")) as f:
blastbuilder.set_source("blast", f.read(), libraries=["c"])
with open(os.path.join(os.path.dirname(__file__), "c-src/blast.h")) as f:
blastbuilder.cdef(f.read())
blastbuilder.compile(verbose=True)
with open('c-src/dbc2dbf.c','r') as f:
ffibuilder.set_source("_readdbc",
f.read(),
libraries=["c"])
with open(os.path.join(os.path.dirname(__file__), "c-src/blast.h")) as f:
ffibuilder.cdef(f.read(), override=True)
if __name__ == "__main__":
# ffibuilder.include(blastbuilder)
ffibuilder.compile(verbose=True)
这不是很有效。我认为我没有正确包含 blast.c;
谁能帮忙?
【问题讨论】:
-
不确定为什么需要两个
FFI()实例。这当然不在文档中...
标签: python c python-cffi