gpt4 book ai didi

python - 使用 cffi 加载 .so 库

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:48 25 4
gpt4 key购买 nike

我有一些 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 个步骤。 (如果我在这里混淆了什么,请纠正我。)

  1. 编译 libcint 产生 libcint.so
  2. 使用 CFFI 构建 Python 包装器
  3. 将步骤2中构建的模块导入到实际的Python程序中

我这里的问题是关于第二步的。

最佳答案

您说的是 libraries = ['libcint'],这意味着编译器将查找名为 liblibcint.so 的文件。因此,您应该编写的是 libraries = ['cint']

关于python - 使用 cffi 加载 .so 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47508459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com