ffi.C пропущены все объявления для всех символов

Я вижу в документации 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 работает нормально?

3

Решение

Ой, не ставил free в мой cdef! Исправлена.

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

Другие решения


По вопросам рекламы [email protected]