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

标签 c++ lua malloc ffi luajit

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

callbacks.free_buffer = function(buffer) 
  print("free_buffer_callback") 
  ffi.C.free(buffer)
end

我收到这个错误:

missing declaration for symbol 'free'

这是否意味着我必须先使用 FFI 自行 malloc 内存?我不能在这个特定的函数中这样做(因为它是回调中的参数)。我该怎么做才能释放这个缓冲区?

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

最佳答案

糟糕,没有将 free 放入我的 cdef 中!固定。

ffi.cdef[[
  void free(void *ptr);
]]

关于c++ - ffi.C 缺少所有符号的所有声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25828778/

相关文章:

C++ - Smallbin 双链表损坏

c++ - 如何强制编译器使用聚合初始化而不是构造函数

c++ - 在 IPP 2019 中使用 Cubic 调整大小比 IPP 5.2 慢

c++ - 只需要知道我在c++中打印模式的方式是否有效,或者还有另一种方式可以有效地进行打印

c - 使用非 malloced 指针变量交换名称(malloced 名称)

c - 为什么 malloc 在我请求 20 个字节时给我 8 个字节?

c++ - 有多少复制操作可以在 'string=string+s1' 和 'string+=s1' 之间移动语义保存?

lua - 在 Lua 5.2 环境中执行 Lua 5.1 代码

lua - OCRopus 文档?

lua - Corona SDK 检测物体移除