我正在学习用CFFI在python程序中调用c并编写名为' add.c'的c文件。如下:
float add(float f1, float f2)
{
return f1 + f2;
}
和一个名为' demo.py'的python文件在&add;'
中调用add方法from cffi import FFI
ffi = FFI()
ffi.cdef("""
float(float, float);
""")
C = ffi.verify("""
#include 'add.c'
""", libraries=[]
)
sum = C.add(1.9, 2.3)
print sum
当我运行demo.py时,我收到无法找到add.c文件的错误。为什么无法找到add.c文件,我该如何修复它?
答案 0 :(得分:3)
我能够使用以下特定错误消息重现您的错误。
__pycache__/_cffi__x46e30051x63be181b.c:157:20: fatal error: add.c: No such file or
directory
#include "add.c"
似乎cffi
正在尝试从__pycache__
子目录中编译您的文件,而add.c
位于当前目录中。解决此问题的方法是使用相对路径
#include "../add.c"
但是,一旦我解决了这个问题,你的声明也是不正确的,所以我也解决了这个问题,并且下面的代码会产生正确的结果。
from cffi import FFI
ffi = FFI()
ffi.cdef("""
float add(float f1, float f2);
""")
C = ffi.verify("""
#include "../add.c"
""", libraries=[]
)
sum = C.add(1.9, 2.3)
print sum