ffi.C缺少所有符号的所有声明

the*_*man 4 c++ malloc lua ffi luajit

我在文档中看到ffi.C.free是我可以用来释放malloc的东西.我试图在这里这样做:

callbacks.free_buffer = function(buffer) 
  print("free_buffer_callback") 
  ffi.C.free(buffer)
end
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

missing declaration for symbol 'free'
Run Code Online (Sandbox Code Playgroud)

这是否意味着我必须首先使用FFI来记忆内存?我不能在这个特定的函数中做到这一点(因为它是回调中的参数).我该怎么做才能释放这个缓冲区?

编辑:看起来所有的ffi.C函数都不起作用,即使在回调函数之外也是如此.我的ffi似乎工作正常吗?

the*_*man 6

哎呀,没有投入free我的cdef!固定.

ffi.cdef[[
  void free(void *ptr);
]]
Run Code Online (Sandbox Code Playgroud)

  • 请接受你自己的答案(并考虑添加一些必要的细节 - 因为它是我不能upvote) (2认同)