Файл 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
👍24🔥14❤6🦄2🥰1
🦀 Rust Foundation запустила инициативу Rust Innovation Lab
Некоммерческая организация Rust Foundation, отвечающая за развитие языка Rust и экосистемы вокруг него, представила новую программу поддержки — Rust Innovation Lab.
✨ Что даёт инициатива:
- Финансовая, юридическая и маркетинговая помощь
- Административное сопровождение и поддержка управления проектами
- Возможность принимать пожертвования и взаимодействовать со спонсорами от имени Rust Foundation с налоговыми льготами
- Сохранение независимости проектов без необходимости создавать юрлицо, открывать счета и вести отчётность
🚀 Первым участником стал проект Rustls — криптографическая библиотека для TLS 1.2 и TLS 1.3, широко используемая в экосистеме Rust.
Итог: Rust Innovation Lab снимает с разработчиков рутину и позволяет сосредоточиться на развитии технологий.
https://rustfoundation.org/media/rust-foundation-launches-rust-innovation-lab-with-rustls-as-inaugural-project/
@rust_code
#rust #news #rustfoundation
Некоммерческая организация Rust Foundation, отвечающая за развитие языка Rust и экосистемы вокруг него, представила новую программу поддержки — Rust Innovation Lab.
✨ Что даёт инициатива:
- Финансовая, юридическая и маркетинговая помощь
- Административное сопровождение и поддержка управления проектами
- Возможность принимать пожертвования и взаимодействовать со спонсорами от имени Rust Foundation с налоговыми льготами
- Сохранение независимости проектов без необходимости создавать юрлицо, открывать счета и вести отчётность
🚀 Первым участником стал проект Rustls — криптографическая библиотека для TLS 1.2 и TLS 1.3, широко используемая в экосистеме Rust.
Итог: Rust Innovation Lab снимает с разработчиков рутину и позволяет сосредоточиться на развитии технологий.
https://rustfoundation.org/media/rust-foundation-launches-rust-innovation-lab-with-rustls-as-inaugural-project/
@rust_code
#rust #news #rustfoundation
👍36❤13🔥7🥰2😁1