@kazhik's answer sẽ làm việc cho 2s Raspberry Pi và 3s (mà là ARMv7/8 based), nhưng không phải cho Raspberry Pi 1s hoặc Zero (mà là ARMv6 based).
Vấn đề là cổng armhf
của Debian/Ubuntu (và do đó mục tiêu gói/biên dịch/công cụ) của Debian/Ubuntu)> = ARMv7.
May mắn thay, mục tiêu gcc-arm-linux-gnueabihf
của rustup> = ARMv6 (với điểm nổi phần cứng, tất cả hỗ trợ Raspberry Pis), vì vậy tất cả những gì cần là liên kết chính xác. Nền tảng Raspberry Pi cung cấp một trong số đó trong số tools repository của chúng.
Đưa nó lại với nhau, các bước sau đây có thể được sử dụng để vượt biên soạn một nhị phân Rust hoạt động trên tất cả các Raspberry Pi:
$ rustup target add arm-unknown-linux-gnueabihf
$ git clone --depth=1 https://github.com/raspberrypi/tools raspberrypi-tools
$ echo "[target.arm-unknown-linux-gnueabihf]" >> ~/.cargo/config
$ echo "linker = \"$(pwd)/raspberrypi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc\"" >> ~/.cargo/config
Để kiểm tra chéo biên dịch (giả sử một Pi đang chạy và có thể truy cập với mặc định raspberrypi
hostname):
[email protected]: $ cargo new --bin rpi-test
[email protected]: $ cd rpi-test
[email protected]: $ cargo build --target=arm-unknown-linux-gnueabihf
[email protected]: $ scp target/arm-unknown-linux-gnueabihf/debug/rpi-test [email protected]:
[email protected]: $ ssh [email protected]
[email protected]: $ ./rpi-test
Hello, world!
Nguồn
2018-01-04 00:50:16
Một số liên kết hữu ích: http://metaverse.fr/blog/compiling-rust-for-the-raspberry-pi/ và https://github.com/npryce/rusty- pi/blob/master/doc/biên dịch-the-compiler.asciidoc –
Bạn có muốn * chạy * 'rustc' trên RPi, hoặc để bạn chỉ đơn giản muốn qua biên dịch một chương trình sẽ thực hiện trên RPi? – Shepmaster
@Shepmaster Tôi muốn chương trình biên dịch chéo để thực thi trên RPi2. Tôi muốn chạy một cái gì đó đơn giản trên đó. –