Описание тега rust-bindgen

0 ответов

Каковы решения для обертывания глобальной константы static const в стиле C в Rust с помощью Bindgen?

Я создаю привязки Rust для библиотеки C, которая определяет списки стандартных значений констант по умолчанию: // C typedef struct RMW_PUBLIC_TYPE rmw_qos_profile_t { size_t depth; enum rmw_qos_reliability_policy_t reliability; // ... } rmw_qos_prof…
20 мар '20 в 17:36
0 ответов

Есть ли хороший способ отладить использование CBindgen в моих build.rs?

Мой сценарий build.rs не работает в моем конвейере CI (Azure Pipelines), но его локальный запуск работает нормально. Я точно знаю, что не могу сгенерировать заголовок cbindgen, но сообщение об ошибке просто перечисляет файлы, которые он проанализиро…
01 май '20 в 21:44
0 ответов

Как безопасно обернуть указатели C в структуры ржавчины

Я создаю безопасные привязки для библиотеки C в Rust, и у меня возникла странная проблема. Я создал структуру, чтобы владеть небезопасным указателем на объекты, возвращаемые библиотекой, и безопасно их освобождать. Вот что у меня есть: pub struct Vi…
03 фев '20 в 18:51
2 ответа

Как преобразовать перечисление в стиле C, созданное bindgen, в другое перечисление?

Я создаю привязки в Rust для библиотеки C и перечислений, сгенерированных Bindgen, например: // Rust #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] pub enum rmw_qos_history_policy_t { RMW_QOS_POLICY_HISTORY_SYSTEM_DEFAULT = 0, RMW_QOS_POLICY_HIS…
18 мар '20 в 14:14
4 ответа

Как получить размер поля структуры в Rust без его создания

У меня есть структура с байтовым массивом. Эта структура фактически происходит из привязок FFI, созданных bindgen, и ее размер определяется в коде C с помощью макроса, то есть: Код C: #define FOO_SIZE 100 struct the_struct { char foo[FOO_SIZE]; /* o…
05 апр '20 в 19:49
0 ответов

Невозможно создать привязки для дерева файлов C

Поэтому я хочу использовать телеграмму JSON API. Насколько я понимаю, и, пожалуйста, поправьте меня, если я ошибаюсь, мне нужно вызвать функцию C.td_json_client_create(). Telegram предлагает создать TDLib, что я и сделал. Затем у меня, среди других …
07 дек '19 в 15:02
1 ответ

Ошибка связывания в ржавчине bindgen

Итак, у меня есть библиотека заголовков (каталог файлов.h), которую мне нужно использовать в моем коде ржавчины. Чтобы заставить эту работу работать, я искал различные ящики, чтобы помочь мне добиться этого, и, похоже, bindgen - самый многообещающий…
01 июл '20 в 11:39
1 ответ

Rust Bindgen: настройка пути включения в окнах

Я новичок в разработке Rust под Windows. Я пытаюсь привязать библиотеку, libk4a, как в Windows, так и в Linux. В Linux он устанавливается как libk4a, под обычными местами, /usr/local/include/k4a/k4a.h а также /usr/local/lib/libk4a.so. Я последовал п…
27 янв '20 в 04:28
1 ответ

Как правильно обернуть указатель функции C в Rust?

У меня есть структура C Fooс указателем на функцию. В моих привязках Rust я хотел бы разрешить пользователям устанавливать этот указатель на функцию, но я бы хотел, чтобы пользователям не приходилось иметь дело с типами FFI. foo.h struct Foo { void*…
01 апр '20 в 13:43
0 ответов

Как преобразовать статическую глобальную переменную, созданную Bindgen, в глобальную константу?

Bindgen генерирует это из static const Глобальная структура в стиле C: pub struct rmw_qos_profile_t { pub depth: usize, pub deadline: rmw_time_t, // ... } extern "C" { #[link_name = "\u{1}rmw_qos_profile_sensor_data"] pub static rmw_qos_profile_sens…
19 мар '20 в 02:40
1 ответ

Увидеть, что bzlib.h не найден при попытке использования учебника Bindgen

Я знаю, что есть похожий пост, но я следил за ним, но все еще вижу проблему, поэтому подумал, что попрошу еще раз, извините. Я загрузил bbindgen-tutorial-bzip2-sys и попытался запустить его, но получаю следующую ошибку wrapper.h:1:10: fatal error: '…
30 июл '20 в 05:30
0 ответов

Использование макросов Rust для преобразования и разделения перечисления в стиле C, созданного bindgen

Я делаю привязки Rust для существующей проприетарной библиотеки C. Библиотека определяет довольно большое перечисление, содержащее возможные коды состояния и ошибок, то есть: enum RET_CODE { STA_OK = 0, STA_SOME_CONDITION, STA_ANOTHER_CONDITION, /* …
20 ноя '19 в 17:34
1 ответ

Rust bindgen не может найти библиотеку для конкретной платформы?

Я пытаюсь перенести свое простое приложение с C на Rust. Он работал только на моем Mac, с библиотекой только на Mac. Вот упрощенная версия неисправной части в коде C // myLog.h #include <os/log.h> // macOS header void debug(const char *str); /…
27 сен '20 в 23:04
1 ответ

Проблемы с компоновкой файлов заголовков с помощью Rust bindgen

Согласно руководству по Rust bindgen на https://rust-lang.github.io/rust-bindgen/tutorial-3.html, я пытаюсь сгенерировать FFI для существующих файлов заголовков C. Однако у меня возникают проблемы со связыванием файлов заголовков. Репозиторий по адр…
16 окт '20 в 16:38
0 ответов

Rust bindgen unaligned tcache chunk error

Я работаю над привязкой avahi lib в ржавчине, и у меня возникла ошибка времени выполнения: malloc(): unaligned tcache chunk detected код ошибки: pub fn register_service( &mut self, name: String, svc_type: String, port: u16, txt: &[String], )…
11 сен '20 в 19:24
1 ответ

Ошибка Rust bindgen clang, несовместимая константа для этой функции __builtin_neon

Попытка сгенерировать привязки для заголовка Obj-C++, который является частью кроссплатформенной аудио библиотеки Superpowered с помощью rust bindgen. Я в Каталине 10.15.6, clang version 10.0.1 Target: x86_64-apple-darwin19.6.0 Thread model: posix I…
1 ответ

Bindgen не может найти clang на OSX

Хотя я уверен, что я что-то сделал не так, я не могу этого найти. я использую bindgen = "0.55.1" и пытаясь создать pjsipпривязки, хотя до этого проблема вроде бы хорошо решена. Это результат сборки: error: failed to run custom build comman…
31 окт '20 в 22:56
0 ответов

Неопределенные символы с помощью rust-bindgen, но могут компилироваться с помощью cc

Я пытаюсь использовать rust-bindgen, чтобы иметь возможность вызывать функции glfw и OpenGL. bindgen правильно генерирует привязки, однако, когда я действительно создаю свой проект, он дает мне ошибки неопределенных символов (я запускаю macOS 10.15.…
12 ноя '20 в 14:55
1 ответ

Импорт Rust в коде wasm-pack вызывает ошибку JS

Я получаю ошибку JS: Uncaught (in promise) TypeError: WebAssembly.instantiate(): Import #0 module="env" error: module is not an object or function Когда я просматриваю файл wasm в инструментах разработчика Chrome, я вижу вверху такие операторы импор…
1 ответ

Rust bindgen ignore включает конкретное включение из файла заголовка

У меня есть файл заголовка, скажем, greetings.h: include <hello.h>; include <bye.h>; include <hola.h>; ... Я использую bindgen в ржавчине, чтобы сгенерировать этот файл от заголовка c до ржавчины. Но я хочу игнорировать создание in…
08 июл '21 в 17:39