【发布时间】:2014-11-07 20:12:56
【问题描述】:
我在文档中看到 ffi.C.free 是我可以用来释放 malloc 的东西。我在这里尝试这样做:
callbacks.free_buffer = function(buffer)
print("free_buffer_callback")
ffi.C.free(buffer)
end
我收到此错误:
missing declaration for symbol 'free'
这是否意味着我必须先用 FFI 自己分配内存?我不能在这个特定的函数中这样做(因为它是回调中的参数)。我可以做些什么来释放这个缓冲区?
编辑:看起来所有 ffi.C 函数都不起作用,即使在回调函数之外也是如此。否则我的 ffi 似乎工作正常?
【问题讨论】:
-
您发布的错误消息(“缺少减速...”)看起来不正确。请复制并粘贴您收到的确切消息,而不是试图解释它。
-
其他
ffi.C功能是否正常工作?在回调中?因为该消息听起来意味着 luajit 找不到该名称的 C 库函数......这让我觉得很奇怪。 -
@EtanReisner 看起来没有 C 函数在工作......
ffi.C.printf("Hello %s!", "world")给了我一个关于 printf 的缺失声明。 ffi似乎在其他地方工作? (ffi.C 在任何地方都不能正常工作,即使在回调之外)。