Rust
6.64K subscribers
258 photos
28 videos
3 files
823 links
Rust programming language

По всем вопросам- @haarrp

@ai_machinelearning_big_data - машинное обучение

@programming_books_it - бесплатные it книги

@pythonl - 🐍

@ArtificialIntelligencedl - AI

@datascienceiot - ml 📚
Download Telegram
👣 Rust совет дня

Файл build.rs можно превратить в полноценную систему сборки C-кода для Rust.
Пример ниже показывает, как собрать C-обёртку и подключить её вместе с C SDK прямо через Cargo 🦀

📌 Что это значит?
- Можно компилировать C-код и обёртки прямо из Rust-проекта
- Линковать C SDK и подключать их к Rust
- Через println! передавать Cargo специальные инструкции (например, какие библиотеки подключить)



/// build.rs
fn main() {
// Компилируем C-wrapper
cc::Build::new()
.file("src/rplidarx_wrapper.c")
.include("/usr/local/include")
.include("/usr/local/include/src")
.include("/usr/local/include/core")
.compile("rplidarx_wrapper");

// Линкуем обёртку
println!("cargo:rustc-link-lib=static=rplidarx_wrapper");

// Линкуем SDK устройства
println!("cargo:rustc-link-lib=rplidarx_sdk");
println!("cargo:rustc-link-lib=pthread");
println!("cargo:rustc-link-lib=stdc++");

// Путь к библиотекам (если нужен)
println!("cargo:rustc-link-search=native=/usr/local/lib");

// Пересобрать при изменении C-файла
println!("cargo:rerun-if-changed=src/rplidarx_wrapper.c");
}


📌 Эти println! — скрытые build-инструкции для Cargo.
Таким образом, Makefile не нужен: всё управление сборкой C и Rust находится прямо в build.rs.

@rust_code

#junior #rust
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥124🥰1🦄1