【发布时间】:2018-05-10 13:05:49
【问题描述】:
我有一些 C 库,我想使用 CFFI 在 Python 中访问。构建库后,我得到了 2 个文件:$HOME/libcint/include/cint.h 和 $HOME/libcint/lib/libcint.so。
现在我尝试了 CFFI API 模式:
from cffi import FFI
libcint_dir = os.path.expanduser('~/libcint')
ffibuilder = FFI()
ffibuilder.set_source('_libcint',
r'#include <include/cint.h>',
include_dirs = [libcint_dir],
libraries = ['libcint'],
library_dirs = [os.path.join(libcint_dir, 'lib')],
)
但是找不到libcint.so文件:
/usr/bin/ld: cannot find -llibcint
libcint_dir 中的路径是正确的,因为我没有收到任何关于找不到头文件的错误消息。我还设法使用ctypes 模块成功连接了库,所以libcint.so 本身应该没问题。
我在这里做错了什么?
如果我做对了,那么这里需要 3 个步骤。 (如果我在这里混淆了什么,请纠正我。)
- 编译 libcint 产生
libcint.so - 使用 CFFI 构建 Python 包装器
- 将步骤 2 中构建的模块导入到实际的 Python 程序中
我的问题是关于第二步。
【问题讨论】:
标签: python python-cffi