Возможно, я не правильно описал заголовок вопроса, отредактируйте его, если нужно.
Я пытаюсь привязать интерфейс Rust к библиотеке LXC, который написан на C.
Я успешно вызвал простые функции, такие как lxc_get_version
или lxc_container_new
, но я не могу получить доступ к функциям, описанным в блоке struct lxc_container
.
Вот часть моего кода:
#[link(name = "lxc")]
extern {
// LXC part
fn lxc_get_version() -> *const c_char;
fn lxc_container_new(name: *const c_char, configpath: *const c_char) -> LxcContainer;
// LXC container parts
fn is_defined(container: &LxcContainer) -> bool;
}
И вот ошибка:
note: test.o: In function `LxcContainer::is_defined::heb2f16a250ac7940Vba':
test.0.rs:(.text._ZN12LxcContainer10is_defined20heb2f16a250ac7940VbaE+0x3e): undefined reference to `is_defined'
EDIT: Я справился с этими функциями внутри C-структур, называемых указателями функций. Я попытался сделать google что-то вроде "Rust C function pointer", но без везения.