mirror of
https://codeberg.org/postscriptum/devzone.org.ua.git
synced 2026-02-19 06:12:39 +00:00
2.1 KiB
2.1 KiB
Простий спосіб крос-компіляції Rust з cross
Довго мучився зі збіркою безпосередньо на сервері, постійно звільняючи там простір та додаючи swap. Згодом, мені це набридло і за пару хвилин віднайшов простий спосіб крос-компіляції з крейтом cross.
Встановлення відбувається однією командою:
cargo install cross --git https://github.com/cross-rs/cross
Перш, як продовжити, варто почистити кеш збірки, що було згенеровано для поточної архітектури:
cargo clean
Компіляція відбувається майже так само як з cargo, але засобами обгортки cross:
cross build --release --target armv7-unknown-linux-gnueabihf
- при першому виконанні, буде автоматично встановлене контейнерне середовище для
--target - після завершення збірки, копіюємо бінарники (з теки
target/armv7-unknown-linux-gnueabihf) на цільовий пристрій
Приклади компіляції специфічних програм
У більшості випадків, все має працювати так само як з cargo, але деякі користувачі мають кастомні рецепти, які я збиратиму нижче.
mycelium
Если бы было всё так просто. У меня еще надо:
export CROSS_CONTAINER_OPTS="\
--volume /home/ufm/src/mycelium/docs:/home/ufm/src/mycelium/docs:ro \
--env RUST_MIN_STACK=16777216 \
"
И только потом
cross build --release --target x86_64-unknown-linux-musl