Rust — использование библиотеки
Rust — это молниеносно быстрый и экономичный статический компилируемый язык с богатой системой типов и моделью владения. Его можно использовать для поддержки критичных к производительности служб, гарантируя при этом безопасность памяти и потокобезопасность, позволяя разработчикам выполнять отладку во время компиляции. В Rust мы можем создавать библиотеки. Это можно сделать, создав библиотеку, а затем связав ее с ящиком.
Создание библиотеки Rust:
Шаг 1: Мы создаем файл с именем gfg.rs , содержащий содержимое нашей библиотеки.
Пример 1:
Rust
// Rust code for creating a library pub fn pub_func() { println!( "Inside public function" ); } fn pvt_func() { println!( "Calling pvt function" ); } pub fn indirect_fn_access() { print!( "Accessing indirect functions " ); pvt_func(); } |
Шаг 2: Для библиотек с префиксом «lib» мы переименовываем файл после объявления файлов ящика. Это разрешено компилятором rust (rustc), который позволяет нам передавать параметр –crate-name
Здесь мы передаем команды, используя опцию crate:
rustc –crate-type=lib gfg.rs
ls lib*
Шаг 3: Вышеупомянутые команды, как мы ясно видим, создают файл «library.rlib» , и все библиотеки имеют префикс «lib», и по умолчанию они называются в соответствии с их файлом создания. Имя по умолчанию переопределяется, как только мы передаем атрибут ящика.
Использование библиотеки в Rust:
Как только наша библиотека создана, мы можем использовать ее для компоновки новой библиотеки с помощью ящика и флага –extern, предоставленного компилятором rust. Как только мы его используем, элементы будут импортированы в модуль, имя которого совпадает с именем библиотеки, и мы можем ожидать, что модуль будет вести себя так же, как и другие модули.
Здесь мы создаем новый файл с именем executable.rs и внутри этого файла мы получаем доступ к публичной функции и функции косвенного_fun_access следующим образом:
Пример 2:
Rust
// Rust code for use a Library fn main() { gfg::pub_func(); gfg::indirect_fn_access(); } |
Структура файла:
Теперь, чтобы выполнить модуль, мы используем команду:
rustc executable.rs --extern gfg=libgfg.rlib --edition=2018 && ./executable
Здесь библиотека — libgfg.rlib, а исполняемый файл — executable.rs.
Выход: